Welcome 微信登录

首页 / 网页编程 / ASP.NET / 使用自定义ViewHelper来简化Asp.net MVC view的开发 - part4

使用自定义ViewHelper来简化Asp.net MVC view的开发 - part42011-08-06 博客园 译:CareySon接上篇,我们下面通过HtmlFiledSet helper来展示何时使用EndView():

如果你用Asp.net已经有一段时间了,那使用Html.BeginForm helper来创建HTML form标签的方式会让 你觉得有点怪.当你创建一个新的Asp.net mvc项目后,在View里的ChangePassword.aspx会默认被创建, 这个页面使用了Html.BeginForm helper,下面是使用这个helper的代码段:

<% using (Html.BeginForm()) { %>
<div>
<fieldset>
<legend>Account Information</legend>
<p>
<label for="currentPassword">Current password:</label>
<%= Html.Password("currentPassword") %>
<%= Html.ValidationMessage("currentPassword") %>
</p>
<p>
<label for="newPassword">New password:</label>
<%= Html.Password("newPassword") %>
<%= Html.ValidationMessage("newPassword") %>
</p>
<p> <label for="confirmPassword">Confirm new password:</label>
<%= Html.Password("confirmPassword") %>
<%= Html.ValidationMessage("confirmPassword") %>
</p>
<p>
<input type="submit" value="Change Password" />
</p>
</fieldset>
</div>
<% } %>

上面代码中你会发现Html.BeginForm的使用和<%=Html.Password(“currentPassword”) %>的 使用不尽相同,也就是Html.BeginForm在using语句中被调用,这点很有意思,让我先来看看上面代码段生 成后的Html,如下:

<form
action="/Account/LogOn?ReturnUrl=%2fAccount%2fChangePassword"
method="post">
<div>
<fieldset>
<legend>Account Information</legend>
<p>
<label for="username">Username:</label>
<input id="username" name="username" type="text" value="" />
</p>
<p>
<label for="password">Password:</label>
<input id="password" name="password" type="password" />
</p>
<p>
<input id="rememberMe" name="rememberMe" type="checkbox" value="true" />
<input name="rememberMe" type="hidden" value="false" />
<label class="inline" for="rememberMe">Remember me?</label>
</p>
<p>
<input type="submit" value="Log On" />
</p>
</fieldset>
</div>
</form>