[英]Using HTML.EditorFor Vs using HTML.CheckBox
我有以下模型類,其中包含bool值: -
Public class Server
{
public bool IsIPUnique { get; set; }
}
目前我使用以下內容顯示我的Razor視圖中的復選框: -
<input type="CheckBox" name="IsIPUnique" value="true" @(Html.Raw(Model.IsIPUnique ? "checked=\"checked\"" : ""))/> IP Unique.
但我讀到了關於EditorFor模板,它可以自動創建復選框並根據模型值檢查/取消選中它,所以我嘗試了以下方法: -
@Html.EditorFor(model=>model.IsIPUnique)<span>test</span>
所以我的問題是,如果我可以用使用EditorFor的新代碼替換我的舊代碼,或者asp.net mvc可能會以不同的方式處理這些值? 謝謝
基本上你有3種可能性:
手動編寫HTML(正如您所做)
如果有可用的HTML助手,我會避免手動編寫HTML。 手動編寫的HTML容易出錯,這可能會導致模型綁定出現問題。
使用特定的HTML幫助程序(Html.CheckBoxFor)
特定的HTML幫助程序為所有控件添加了一個抽象層。 修改使用相同HTML幫助程序的所有控件的模板很容易,它使您的視圖更具可讀性。
使用通用EditorFor
如果模型數據類型經常更改,則EditorFor HTML幫助程序非常有用。 EditorFor會自動將輸入字段調整為新的數據類型,並且不會拋出錯誤(與特定的HTML幫助程序一樣)。 將HTML屬性添加到EditorFor也有點困難,而特定的HTML幫助程序通常會有重載。 但是,這已在MVC 5.1中修復: http : //weblogs.asp.net/jongalloway/looking-at-asp-net-mvc-5-1-and-web-api-2-1-part-3-bootstrap -and-JavaScript的增強功能
結論 :在你的情況下,我會使用CheckBoxFor HTML幫助器,因為數據類型不會發生變化,它會使視圖更清晰
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.