Форма
HTML <form>
требуется кнопка отправки (и, как правило, некоторые элементы управления), прежде чем он вызовет действие контроллера. Похоже, что форма в вашем примере пуста.
Вы не показали контроллер, но давайте предположим, что вы хотите передать строку в действие контроллера, возможно, для поиска или фильтрации:
public ActionResult Index(string searchTerm)
{
// do something with parameters then return view
return View();
}
Вместо этого, по вашему мнению:
Html.BeginForm("Index", "Default", FormMethod.Get); // empty form
Это должно быть примерно так:
@Html.BeginForm("Index", "Default", FormMethod.Get)
{
// add controls here, what parameters are you passing?
@Html.TextBox("SearchTerm")
<input type="submit" value="Search" />
}
Tag Helpers
Поскольку вы используете ASP.Net-Core, выможет воспользоваться помощниками тегов, которые позволяют писать код более похожим на HTML образом. Я рекомендую вам прочитать Помощники тегов в формах в ASP.NET Core . Один из способов написания приведенного выше с помощью помощников тегов:
<form asp-action="Index" asp-controller="Default" method="get">
<input type="text" name="SearchTerm" />
<button>Search</button>
</form>
ActionLink
Возможно, вы хотите создать гиперссылку на Default/Index
? В этом случае используйте @Html.ActionLink
помощник:
@Html.ActionLink("go to this link", "Index", "Default")
, который создаст обычный якорь <a>
:
<a href="/Default">go to this link</a>
Tag Helper версия
<a asp-action="Index" asp-controller="Default" >Click this link</a>