2017-06-21 84 views
0

我在某些Asp.net M使用Html.BeginForm(),但我不明白它的用途变成强制性的。为什么我真的需要在我的Views ..中使用它?这可能是一个愚蠢的问题,但我感到困惑和困惑,使用mvc中的这个Html-helper ...?Asp.net我在哪里使用Html.BeginForm()

下面我有代码搜索选项,但我不知道什么是FormMethod.Get的含义,所以请简单解释一下吗?

using(Html.BeginForm("Index","Home",FormMethod.Get)) 
{ 
    <b>Search Option</b> 

    @Html.TextBox("Search") <input type="submit" value="Search"/> 
} 
+0

检查此https://msdn.microsoft.com/en-us/library/system.web.mvc.html.formextensions.beginform(v = vs.118).aspx –

+0

它从来没有'强制性',但它确保html正确生成,并且通常比手动编写代码少,所以为什么不使用它。 –

+0

阿里你可以给我一个例子,如果我没有使用它,那么会有什么结果? –

回答

0

Html.BeginForm是生成用于form标签到页面/视图的HTML标记的辅助方法。当你使用using时,它也会正确创建一个结束标签(<\form>)。所以基本上,当剃刀在你的问题执行的代码,就会产生类似这样的标记使用的helper方法是

<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核心要求,我们有标签的帮手,它允许我们编写代码来生成表单(或其他表单元素)接近上述手写的html标记。因此,代码将基本上看起来更像纯粹的HTML比C#或VB.NET

+1

Mukesh Modhvadiya它的集会有帮助的答案.thanks –