下午好,
我正在使用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。
谢谢您的帮助吗?
哈里
答案 0 :(得分:0)
Html.BeginForm
是MVC中较旧的方法。它的参数是Action和Controller,例如
Html.BeginForm("AddNewCustomer", "Customer", FormMethod.Post)
发布到CustomerController
并调用AddNewCustomer
方法。
如果您使用的是新的Razor页面,则直接编写html并添加以asp-
开头的属性。
如果您想要设置表单发布到Listing.cshtml
页面的页面,则如下所示:
<form method="get" asp-page="./Listing">
</form>
请注意,asp页是相对于当前文件的Razor页文件的路径。不是网址链接。