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>
<%}%>