簡體   English   中英

使用HTML.EditorFor Vs使用HTML.CheckBox

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM