Asp.net-Mvc-2

覆蓋 Html.EditorFor 上的類

  • June 5, 2014

預設情況下

<%: Html.EditorFor(m => m.ConfirmationHeadline) %>

輸出是:

<input type="text" value="" 
       name="ConfirmationHeadline" id="ConfirmationHeadline" 
       class="text-box single-line">

如您所見,輸入已經附加了一個class屬性。好吧,這應該不是問題,只需使用

<%: Html.EditorFor(m => m.ConfirmationHeadline, new { @class="span-11 last"}) %>

並且應該工作……錯誤……不!

這將輸出完全相同的程式碼!

不過,可以正常使用Html.TextAreaFor()

我怎樣才能text-box single-line從曾經出現的類中刪除,以便可以附加我自己的類?我應該編輯任何 T4 模板嗎?

謝謝大家的幫助。

EditorFor通過該方法使用內置編輯器模板時,無法自定義發出的類屬性的值。它對類值進行硬編碼(此處提供更多資訊:http: //bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html

你有兩個選擇:

  1. 編寫您自己的支持額外功能的自定義模板。在這裡查看更多詳細資訊:http: //bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-4-custom-object-templates.html
  2. 處理方法的輸出EditorFor
<%: new HtmlString(Html.EditorFor(m=>m.ConfirmationHeadline).ToString()
       .Replace("class=\"text-box single-line\"", 
                "class=\"text-box single-line span-11 last\"")) %>

引用自:https://stackoverflow.com/questions/4078968