MVC-10HTML助手

HTML帮助器用于修改HTML输出。

HTML帮助器

通过MVC,HTML帮助器类似于传统的ASP.NET Web Form控件。

类似ASP.NET中的web form控件,HTML帮助器用于修改HTML。但是HTML帮助器更轻。与web form控件不同,HTML帮助器没有时间模型和view state.

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

通过MVC,您能够创建自己的帮助器,或者使用内建的html帮助器。

标准的HTML帮助器

MVC包含了大多数常用的HTML元素类型的标准帮助器,比如HTML链接和HTML表单元素。

HTML链接

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

通过MVC,Html.ActionLink()不连接到视图。它创建控制器操作(controller action)的连接。

Razor 语法:

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

ASP 语法:

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

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

上面的 Html.ActionLink() 帮助器,输出以下 HTML:

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

Html.ActionLink() 帮助器的若干参数:

参数描述
linkText 定位点元素的内部文本。
actionName 操作的名称。
controllerName 控制器的名称。
protocol URL 协议,如“http”或“https”。
hostname URL 的主机名。
fragment URL 片段名称(定位点名称)。
routeValues 一个包含路由参数的对象。
htmlAttributes 一个对象,包含要为该元素设置的 HTML 特性。

注释:您可以向控制器操作传递值。例如,您能够像数据库编辑操作传递数据库记录的 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:

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

HTML 表单元素

以下 HTML 帮助器可用于呈现(修改和输出)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>
<%}%>
posted @ 2019-06-15 16:03  韩小花  阅读(253)  评论(0编辑  收藏  举报