ASP.NET MVC - HTMLヘルパー

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">姓:</label>
<%= Html.TextBox("LastName") %>
<%= Html.ValidationMessage("LastName", "*") %>
</p>
<p>
<label for="Password">パスワード:</label>
<%= Html.Password("Password") %>
<%= Html.ValidationMessage("Password", "*") %>
</p>
<p>
<label for="Password">パスワードを確認:</label>
<%= Html.Password("ConfirmPassword") %>
<%= Html.ValidationMessage("ConfirmPassword", "*") %>
</p>
<p>
<label for="Profile">プロフィール:</label>
<%= Html.TextArea("Profile", new {cols=60, rows=10})%>
</p>
<p>
<%= Html.CheckBox("ReceiveNewsletter") %>
<label for="ReceiveNewsletter" style="display:inline">ニュースレターを受け取りますか?</label>
</p>
<p>
<input type="submit" value="Register" />
</p>
<%}%>