【问题标题】:Core razor beginform html tag wrong核心剃须刀beginform html标签错误
【发布时间】:2020-10-20 23:42:29
【问题描述】:

下午好,

我正在 ASP.NET Core 3.1 中处理一个简单的表单,但我很难理解 beginform。

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

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

@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。

如果您能提供帮助,请提前感谢您?

哈利

【问题讨论】:

    标签: asp.net-core razor


    【解决方案1】:

    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-page 是 Razor 页面文件相对于当前文件的路径。不是 URL 链接。

    【讨论】:

      猜你喜欢
      • 2017-05-03
      • 2020-11-09
      • 2018-05-19
      • 2021-01-05
      • 2019-06-13
      • 2020-12-08
      • 2019-01-19
      • 2021-10-07
      • 1970-01-01
      相关资源
      最近更新 更多