asp-действие и Html.ActionLink не работает в asp.net ядро mvc

#c# #asp.net-core #asp.net-core-mvc #asp.net-core-3.1 #asp.net-core-tag-helpers

#c# #asp.net-core #asp.net-core-mvc #asp.net-core-3.1 #asp.net-core-tag-helpers

Вопрос:

Редактировать: после пары перезагрузок компьютера он начал работать сейчас. Очень странно!Спасибо всем за потраченное время. 🙂

После просмотра нескольких ответов от SO я все еще не могу заставить его работать.

Я просто следую примеру из книги: Pro ASP.NET Core 3 Адама Фримена.

Начал с простого .Приложение NET core mvc с командной строкой:

 dotnet new globaljson --sdk-version 3.1.100 --output PartyInvites
dotnet new mvc --no-https --output PartyInvites --framework netcoreapp3.1
  

Настройка контроллера:

 public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }

    public IActionResult RsvpForm()
    {
        return View();
    }
}
  

У Index.cshtml него есть этот простой тег привязки:

 <a asp-action="RsvpForm">RSVP Now</a>
  

Полный файл со структурой проекта:
введите описание изображения здесь
Я видел во многих ответах, что нам нужно использовать это:

 @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
  

но, похоже, у меня уже есть это в моем _ViewImports.cshtml , которое выглядит так:

 @using PartyInvites
@using PartyInvites.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
  

Я даже попробовал старый добрый метод action link, но это тоже не сработало:

 @Html.ActionLink("RSVP Now", "RsvpForm", "Home", new object { }, new { @class = "btn btn-primary" })
  

Во время запуска приложения я никогда не вижу ссылку:
введите описание изображения здесь

Ссылка даже не присутствует в отображаемом HTML: введите описание изображения здесь

Что я мог здесь делать не так? Спасибо за ваше время!

PS: я включен Visual Studio Community 2019 for Mac (macOS Catalina v 10.15.7).

Если вы хотите взглянуть на весь проект, я также разместил его на Github:

https://github.com/affableashish/party-invites

Комментарии:

1. Убедитесь _ViewImports.cshtml , что он находится в нужном месте.

2. asp-action Выделяется в Visual Studio? Я бы предположил, что это не так, и что вам нужно включить @addTagHelper , потому что вы убиваете Layout , но я могу ошибаться

3. Вы пробовали добавить asp-контроллер «controllerName»?

4. @CamiloTerevinto Я добавил скриншот, который показывает структуру проекта, а также показывает, что asp-action выделено.

5. Привет @AshK, я также протестировал ваш проект. Это работает хорошо. Возможно, вам нужно восстановить свой vs.

Ответ №1:

Измените _ViewImports.cshtml файл, чтобы он содержал следующее:

 @using YouApplicationName
@using YouApplicationName.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers