最新的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>
<%}%>