2012-11-29 30 views
3

他們都看在網頁上視覺上相似,但他們每個人的HTML是相當不同:MVC4中的Html.TextBox和Html.Editor有什麼區別?

<input id="TEST" name="TEST" type="text" value="this one's filled in, but editor isn't"> 
<input class="text-box single-line" id="TEST" name="TEST" type="text" value=""> 

docsReturns an HTML input element for each property in the object that is represented by the expression.爲Html.Editor

雖然Html.TextBoxReturns a text input element by using the specified HTML helper and the name of the form field.

這是否意味着你將一個模型的字符串名稱傳遞給Html.Editor,然後它會爲它的每個屬性創建一個文本輸入,而Html.TextBox只是一個愚蠢的文本輸入而沒有其他任何東西后面的場景?

回答

7

HTML.Textbox:

通過使用指定的HTML輔助細胞和形式字段的名稱,返回文本輸入元件。

HTML.Editor:

此方法生成取決於所呈現的屬性的數據類型不同的HTML標記,並根據該屬性是否被標有某些屬性。

  • 如果將屬性鍵入爲基本類型(整數,字符串等),則該方法爲文本框呈現HTML輸入元素。

  • 如果某個屬性標記了數據類型屬性或UIHintAttribute屬性,則該屬性將指定爲該屬性生成的標記。例如,如果該屬性標有MultilineText屬性,則該方法會爲多行文本框生成標記。

  • 如果對象包含多個屬性,則對於每個屬性,該方法將生成一個字符串,該字符串由屬性名稱的標記和用於編輯屬性值的輸入元素組成。
  • 如果該屬性是一個布爾值,那麼它將加載一個複選框。