我在某些 Asp.net M中使用Html.BeginForm()
,但我不明白它在哪里成为强制性的。为什么我真的需要在我的视图中使用它..?这可能是一个愚蠢的问题,但我对在 mvc 中使用这个 HTML 助手感到困惑和困惑......??
下面我有搜索选项的代码,但我不知道FormMethod.Get
的含义是什么,所以请简要解释一下?
using(Html.BeginForm("Index","Home",FormMethod.Get))
{
<b>Search Option</b>
@Html.TextBox("Search") <input type="submit" value="Search"/>
}
Html.BeginForm
是一个帮助程序方法,它为页面/视图的form
标记生成HTML标记。当你使用它时,它会using
,它也会正确地创建一个结束形式标签(<form>
)。所以基本上当 razor 执行你问题中的代码时,它会生成这样的标记
<form action="/Home/Index" method="get">
<!-- markup generated by other elements inside the form will goes here -->
</form>
使用帮助程序方法的一个好处是,它正确地生成正确的标记,您/i编写表单标记的标记和容易出现人为错误(拼写错误)所需的属性。此外,帮助程序方法始终为action
属性的值生成操作方法的正确相对路径。
不必将此方法用于您的视图。如果你更喜欢编写干净可读的 UI 代码,你可以通过将帮助程序方法调用替换为类似
<form action="/Home/Index" method="get">
<b>Search Option</b>
<input id="Search" name="Search" type="text" value="">
<input type="submit" value="Search">
</form>
在 ASP.NET Core中,我们有标签助手,它允许我们编写代码来生成表单(或其他表单元素),接近上述手写的html标记。所以代码基本上看起来更像纯HTML,而不是C#或 VB.NET