最新的Web开发教程
 

ASP.NET MVC - HTML助手


HTML辅助函数用于修改HTML输出


HTML助手

在MVC中,HTML辅助很像传统的ASP.NET Web窗体控件。

就像在ASP.NET Web窗体控件,HTML佣工用于修改HTML。 但是HTML佣工更轻便。 与Web窗体控件,一个HTML帮助不具有事件模型和视图状态。

在大多数情况下,HTML帮助仅仅是返回一个字符串的方法。

在MVC中,你可以创建自己的助手,或者使用内置的HTML辅助。


标准HTML助手

MVC包括标准助手为最常见的HTML元素,如HTML链接和HTML表单元素。


HTML链接

呈现在HTML链接的最简单方法是使用HTML. ActionLink() HTML. ActionLink()帮手。

在MVC中的Html. ActionLink() Html. ActionLink()未链接到一个视图。 它创建了一个链接到一个控制器动作。

Razor语法:

@Html. ActionLink("About this Website", "About")

ASP语法:

<%=Html. ActionLink("About this Website", "About") %>

第一个参数是链接文本,第二个参数是控制器动作的名称。

Html. ActionLink() Html. ActionLink()以上帮手,输出以下HTML:

<a href="/Home/About">About this Website</a>

Html. ActionLink() Html. ActionLink()助手有几个特性:

属性 描述
.linkText 链接文本(label)
.actionName 目标行动
.routeValues 值传递到操作
.controllerName 目标控制器
.htmlAttributes 该属性集的链接
.protocol 链路层协议
.hostname 该链接的主机名
.fragment 锚点目标的链接

注意:您可以将值传递给控制器的动作。 例如,你可以通过一个数据库记录到数据库编辑操作的ID:

Razor语法C#:

@Html. ActionLink("Edit Record", "Edit" , new {Id=3})

Razor语法VB:

@Html. ActionLink("Edit Record", "Edit" , New With{.Id=3})

Html. ActionLink() Html. ActionLink()以上帮手,输出以下HTML:

<a href="/Home/Edit/3">Edit Record</a>

HTML表单元素

有以下HTML辅助可用于渲染(modify and output) HTML表格元素:

  • BeginForm()
  • EndForm()
  • TextArea()
  • TextBox()
  • CheckBox()
  • RadioButton()
  • ListBox()
  • DropDownList()
  • Hidden()
  • Password()

ASP.NET语法C#:

<%= Html. ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>
<% using (Html. BeginForm() ){%>
<p>
<label for="FirstName">First Name:</label>
<%= Html. TextBox("FirstName") %>
<%= Html. ValidationMessage("FirstName", "*") %>
</p>
<p>
<label for="LastName">Last Name:</label>
<%= Html. TextBox("LastName") %>
<%= Html. ValidationMessage("LastName", "*") %>
</p>
<p>
<label for="Password">Password:</label>
<%= Html. Password("Password") %>
<%= Html. ValidationMessage("Password", "*") %>
</p>
<p>
<label for="Password">Confirm Password:</label>
<%= Html. Password("ConfirmPassword") %>
<%= Html. ValidationMessage("ConfirmPassword", "*") %>
</p>
<p>
<label for="Profile">Profile:</label>
<%= Html. TextArea("Profile", new {cols=60, rows=10}) %>
</p>
<p>
<%= Html. CheckBox("ReceiveNewsletter") %>
<label for="ReceiveNewsletter" style="display:inline">Receive Newsletter?</label>
</p>
<p>
<input type="submit" value="Register" />
</p>
<%}%>