中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【翻譯】了解ASP.NET MVC的HTML助手

發布時間:2020-07-17 02:48:16 來源:網絡 閱讀:455 作者:tianxiaode2008 欄目:編程語言

原文:Understanding HTML Helpers in ASP.NET MVC


作者:Shailendra Chauhan works as Software Analyst at reputed MNC and has more than 5 years of hand over Microsoft .NET technologies. He is a .NET Consultant and is the founder & chief editor of www.dotnet-tricks.com and www.dotnetinterviewtricks.com blogs. He is author of book ASP.NET MVC Interview Questions and Answers.
He loves to work with web applications and mobile apps using Microsoft technology including ASP.NET, MVC, C#, SQL Server, WCF, Web API, Entity Framework,Cloud Computing, Windows Azure, jQuery, jQuery Mobile, Knockout.js, Angular.js and many more web technologies. More...


HTML助手就是用來返回HTML字符串的方法。這些字符串可以用來表現你所期望的任何內容。例如,可以使用HTML助手來渲染標準的HTML標記,如HTML的<input>、<button>和<img>等標記。


還可以通過創建自定義的HTML助手來渲染更多更復雜的內容,如菜單條或用來顯示數據庫數據的HTML表格。


不同類型的HTML助手


以下列出了三種類下的HTML助手:

內聯式的HTML助手

這些需要在同一視圖內使用Razor的@hepler標記來創建。這些助手可以在同一視圖內被重用。


@helper ListingItems(string[] items)
{
<ol>
@foreach (string item in items)
{
<li>@item</li>
}
</ol>
}
                                                              
<h4>Programming Languages:</h4>
                                                              
@ListingItems(new string[] { "C", "C++", "C#" })
                                                              
<h4>Book List:</h4>
                                                              
@ListingItems(new string[] { "How to C", "how to C++", "how to C#" })


內置的HTML助手

內置的HTML助手是HtmlHelper類的擴展方法。內置的HTML助手可以劃分為3種類型:

標準的HTML助手

這些助手可以用來渲染最常用的HTML元素類型,如HTML文本輸入框、復選框等。以下是最常用的標準Html助手列表:

HTML元素

示例

TextBox

@Html.TextBox("Textbox1", "val")
輸出: <input  id="Textbox1" name="Textbox1" type="text"  value="val" />

TextArea

@Html.TextArea("Textarea1", "val",  5, 15, null)
輸出: <textarea  cols="15" id="Textarea1" name="Textarea1"  rows="5">val</textarea>

Password

@Html.Password("Password1", "val")
輸出: <input  id="Password1" name="Password1" type="password"  value="val" />

Hidden Field

@Html.Hidden("Hidden1", "val")
輸出: <input  id="Hidden1" name="Hidden1" type="hidden"  value="val" />

CheckBox

@Html.CheckBox("Checkbox1", false)
輸出: <input  id="Checkbox1" name="Checkbox1" type="checkbox"  value="true" /> <input name="myCheckbox"  type="hidden" value="false" />

RadioButton

@Html.RadioButton("Radiobutton1",  "val", true)
輸出: <input  checked="checked" id="Radiobutton1"  name="Radiobutton1" type="radio" value="val"  />

Drop-down list

@Html.DropDownList (“DropDownList1”, new SelectList(new  [] {"Male", "Female"}))
輸出: <select  id="DropDownList1" name="DropDownList1">  <option>M</option> <option>F</option> </select>

Multiple-select

Html.ListBox(“ListBox1”, new MultiSelectList(new []  {"Cricket", "Chess"}))
輸出: <select  id="ListBox1" multiple="multiple"  name="ListBox1"> <option>Cricket</option>  <option>Chess</option> </select>


強類型的HTML助手

這些助手主要用來在強類型視圖內渲染最常用的HTML元素類型,如HTML文本輸入框、復選框等等。HTML元素會根據模型屬性來創建。強類型HTML助手需要與lambda表達式一起使用。模型對象會被作為lambda表達式的值來傳遞,而你可以從模型中選擇一個字段或屬性來設置HTML助手id、名稱和值屬性。以下是最常用的強類型HTML助手的列表:


HTML元素

示例

TextBox

@Html.TextBoxFor(m=>m.Name)
輸出: <input id="Name"  name="Name" type="text" value="Name-val" />

TextArea

@Html.TextArea(m=>m.Address , 5, 15, new{}))
輸出: <textarea  cols="15" id="Address" name=" Address "  rows="5">Addressvalue</textarea>

Password

@Html.PasswordFor(m=>m.Password)
輸出: <input  id="Password" name="Password"  type="password"/>

Hidden Field

@Html.HiddenFor(m=>m.UserId)
輸出: <input id="  UserId" name=" UserId" type="hidden"  value="UserId-val" />

CheckBox

@Html.CheckBoxFor(m=>m.IsApproved)
輸出: <input  id="Checkbox1" name="Checkbox1" type="checkbox"  value="true" /> <input name="myCheckbox"  type="hidden" value="false" />

RadioButton

@Html.RadioButtonFor(m=>m.IsApproved,  "val")
輸出: <input  checked="checked" id="Radiobutton1" name="Radiobutton1"  type="radio" value="val" />

Drop-down list

@Html.DropDownListFor(m => m.Gender, new  SelectList(new [] {"Male", "Female"}))
輸出: <select  id="Gender" name="Gender">  <option>Male</option> <option>Female</option>  </select>

Multiple-select

Html.ListBoxFor(m => m.Hobbies, new  MultiSelectList(new [] {"Cricket", "Chess"}))
輸出: <select  id="Hobbies" multiple="multiple"  name="Hobbies"> <option>Cricket</option>  <option>Chess</option> </select>


模板化的HTML助手

這些助手需要弄清楚那些HTML元素是被要求基于模型類的屬性進行渲染的。盡管這需要一些細致和耐心的設置,但這是一種將數據顯示給用戶的非常靈活的做法。為了使用模板化的HTML助手來設置適合的HTML元素,需要使用DataAnnitation類的DataType特性。

例如,當使用DataType作為密碼,模板化的助手會自動渲染密碼類型的HTML的input元素。

模板化助手

示例

Display

渲染一個指定模型屬性的只讀視圖,并基于屬性的數據類型和元數據選擇適當的HTML元素。

Html.Display("Name")

DisplayFor

前一個的助手的強類型版本。
 Html.DisplayFor(m => m. Name)

Editor

為指定的模型屬性渲染一個編輯器,并給予屬性的數據類型和元數據選擇適當的HTML元素。
 Html.Editor("Name")

EditorFor

前一個的助手的強類型版本。
 Html.EditorFor(m => m. Name)



自定義的HTML助手

還可以通過創建HtmlHelper類的擴展方法或在功能類內創建靜態方法的方式來創建自定義的輔助方法。

public static class CustomHelpers
{
//Submit Button Helper
public static MvcHtmlString SubmitButton(this HtmlHelper helper, string
buttonText)
{
string str = "<input type=\"submit\" value=\"" + buttonText + "\" />";
return new MvcHtmlString(str);
}
//Readonly Strongly-Typed TextBox Helper
public static MvcHtmlString TextBoxFor<TModel, TValue>(this
HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>>
expression, bool isReadonly)
{
MvcHtmlString html = default(MvcHtmlString);
     
if (isReadonly)
{
html = System.Web.Mvc.Html.InputExtensions.TextBoxFor(htmlHelper,
expression, new { @class = "readOnly",
@readonly = "read-only" });
}
else
{
html = System.Web.Mvc.Html.InputExtensions.TextBoxFor(htmlHelper,
expression);
}
return html;
}
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蕉岭县| 伊宁县| 伊春市| 吉隆县| 贺州市| 东乌珠穆沁旗| 临泽县| 宽城| 奉节县| 盘锦市| 石泉县| 定南县| 凤庆县| 灌云县| 保靖县| 锦屏县| 游戏| 黑河市| 长岛县| 连州市| 酉阳| 格尔木市| 汝州市| 台东县| 乐至县| 保山市| 天门市| 衢州市| 潞城市| 安顺市| 新化县| 霍林郭勒市| 双城市| 凭祥市| 桐柏县| 乐东| 晋江市| 康保县| 岑巩县| 开封县| 甘泉县|