有人可以向我解释为什么我们需要使用
@using (Html.BeginForm("CheckUser", "Home", FormMethod.Post))
代替 :
@Html.BeginForm("CheckUser", "Home", FormMethod.Post)
据我所知,这里@use的主要目的是什么,我只使用'using'关键字来确保对象在超出范围后立即被处置。我有点困惑。
我问这个问题是因为@ Html.BeginForm在呈现表单内容之前会输出一个文本:“ System.Web.Mvc.Html.MvcForm {”。通过使用“ using”关键字,不会显示此文本。
编辑:这是我的代码,呈现“ System.Web.Mvc.Html.MvcForm ...”
@Html.BeginForm("CheckUser", "Home", FormMethod.Post)
<label for="username">Username :</label>
<input type="text" name="username" id="username" placeholder="username"/>
<label for="password">Password :</label>
<input type="password" name="password" id="password" placeholder="password"/>
<input type="submit" value="Submit" />
@{Html.EndForm();}
通过使用 @using (Html.BeginForm("CheckUser", "Home", FormMethod.Post))
它会自动添加</form>
到您的页面中。您无需担心关闭表单标签,如果有人忘记关闭表单,它可以防止意外问题。
@*<form>*@
@using (Html.BeginForm("CheckUser", "Home", FormMethod.Post))
{
}@* </form> gets added automaticaly*@
如果要使用Html.EndForm(),请按以下方式使用它
@{Html.BeginForm("CheckUser", "Home", FormMethod.Post);}
//other form elements
@{Html.EndForm();}
原因:Html.EndForm()
不返回任何内容(return type void
),而是将其写入流中。如果您不使用{}
,则@
symbol将期望以下语句返回某些内容,因此它将使用将object.ToString()
其结果System.Web.Mvc.Html.MvcForm
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句