Asp.net我在哪里使用Html.BeginForm()

时间:2017-06-21 09:52:57

标签: asp.net asp.net-mvc

我在一些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"/>
}

1 个答案:

答案 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

相关问题