核心剃须刀beginform html标记错误

时间:2020-06-30 15:51:07

标签: asp.net-core razor

下午好,

我正在使用ASP.NET Core 3.1创建一个简单的表单,并且正在努力理解beginform。

我在一个页面上有一个搜索框(在本例中为/ Index),当有人键入搜索内容并按搜索按钮时,使用GET(一项要求),操作需要转到另一页(在此例中)案例/ Listing)

在剃须刀表单页面中,如果我使用:-

@using (Html.BeginForm("Listing", "", FormMethod.Get))
{
}

...但是我创建了这个HTML:-

<form action="/?action=Listing" method="get">
</form>

我希望看到的是:-

<form method="get" action="/Listing">
</form>

那么我上面的BeginForm出错了吗,请为标签创建错误的HTML?

我尝试了其他地方找到的许多答案,但它们都是针对MVC的,而我仅使用Razor页面而不是MVC。

谢谢您的帮助吗?

哈里

1 个答案:

答案 0 :(得分:0)

Html.BeginForm是MVC中较旧的方法。它的参数是Action和Controller,例如

Html.BeginForm("AddNewCustomer", "Customer", FormMethod.Post)

发布到CustomerController并调用AddNewCustomer方法。

如果您使用的是新的Razor页面,则直接编写html并添加以asp-开头的属性。

例如Build a Form in Razor pages

如果您想要设置表单发布到Listing.cshtml页面的页面,则如下所示:

<form method="get" asp-page="./Listing">
</form>

请注意,asp页是相对于当前文件的Razor页文件的路径。不是网址链接。