Meh*_*egi 5 c# asp.net-mvc razor
有人可以向我解释为什么我们需要使用
@using (Html.BeginForm("CheckUser", "Home", FormMethod.Post))
Run Code Online (Sandbox Code Playgroud)
代替 :
@Html.BeginForm("CheckUser", "Home", FormMethod.Post)
Run Code Online (Sandbox Code Playgroud)
@using 在这里的主要目的是什么,据我所知,我只使用 '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();}
Run Code Online (Sandbox Code Playgroud)
通过使用@using (Html.BeginForm("CheckUser", "Home", FormMethod.Post))
它会自动添加</form>到您的页面中。您无需关心关闭表单标签,并且可以防止有人忘记关闭表单时出现意外问题。
@*<form>*@
@using (Html.BeginForm("CheckUser", "Home", FormMethod.Post))
{
}@* </form> gets added automaticaly*@
Run Code Online (Sandbox Code Playgroud)
如果你想使用 Html.EndForm(),请像下面这样使用
@{Html.BeginForm("CheckUser", "Home", FormMethod.Post);}
//other form elements
@{Html.EndForm();}
Run Code Online (Sandbox Code Playgroud)
原因:Html.EndForm()不返回任何内容(返回类型void),而是写在流上。如果您不使用{},@符号将期望从以下语句中返回某些内容,因此它将使用object.ToString()哪个结果System.Web.Mvc.Html.MvcForm
| 归档时间: |
|
| 查看次数: |
5429 次 |
| 最近记录: |