我在一些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"/>
}
答案 0 :(得分:0)
Html.BeginForm
是一个帮助方法,它为页面/视图的form
标记生成HTML标记。当您using
使用它时,它也会正确创建一个结束表单标记(<\form>
)。所以基本上当剃刀在你的问题中执行代码时,它会生成像这样的标记
<form action="/Home/Index" method="get">
<!-- markup generated by other elements inside the form will goes here -->
</form>
使用辅助方法的一个好处是,它正确生成正确的标记,您可以编写表单标记的标记以及易于出现人为错误(拼写错误)的所需属性。此外,辅助方法始终为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