Latest web development tutorials

ASP.NET MVC HTML 幫助器

HTML 幫助器用於修改HTML 輸出。


HTML 幫助器

通過MVC,HTML 幫助器類似於傳統的ASP.NET Web Form 控件。

就像ASP.NET 中的Web Form 控件,HTML 幫助器用於修改HTML。 但是HTML 幫助器是更輕量級的。 與Web Form 控件不同,HTML 幫助器沒有事件模型和視圖狀態。

在大多數情況下,HTML 幫助器僅僅是一個返回字符串的方法。

通過MVC,您可以創建您自己的幫助器,或者直接使用內建的HTML 幫助器。


標準的HTML 幫助器

MVC 包含了大多數常用的HTML 元素類型的標準幫助器,比如HTML 鏈接和HTML 表單元素。


HTML 鏈接

呈現HTML 鏈接的最簡單的方法是使用HTML.ActionLink() 幫助器。

通過MVC,Html.ActionLink() 不連接到視圖。 它創建一個連接到控制器操作。

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 URL 文本(标签),定位点元素的内部文本。
.actionName 操作(action)的名称。
.routeValues 传递给操作(action)的值,是一个包含路由参数的对象。
.controllerName 控制器的名称。
.htmlAttributes URL 的属性设置,是一个包含要为该元素设置的 HTML 特性的对象。
.protocol URL 协议,如 "http" 或 "https"。
.hostname URL 的主机名。
.fragment URL 片段名称(定位点名称)。

註釋:您可以向控制器操作傳遞值。 例如,您可以向數據庫Edit 操作傳遞數據庫記錄的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>
<%}%>