2009-02-24 18 views
7

剛剛升級到最新的ASP.NET MVC候選版本時,我注意到在使用Html Helpers時,任何名稱都帶有句點「。」。在輸出元素的ID時,它會被下劃線「_」替換。防止ASP.NET MVC在Html Helper IDs中用下劃線代替句號

我相信這是to aid in using JQuery和使用期限是爲了幫助使用ModelBinders。這已經打破了我們所有使用原型的JavaScript,因爲ID已經全部改變了。

有沒有辦法輕鬆關閉此功能?

回答

14

從ASP.NET MVC RC1發行說明(頁面15)。

在此版本中,默認情況下點 字符自動地與在 ID屬性的值替換爲下劃線 。因此,例如文本框 呈現以下標記:

<input type="text" name="Person.FirstName" id="Person_FirstName" />

要更改默認 替換字符,可以 設置 HtmlHelper.IDDotReplacementChar 屬性,你 要改爲使用的字符。

僅供參考。查看http://www.codeplex.com/aspnet的源代碼,看起來RC1中屬性的真實名稱是IdAttributeDotReplacement。相關的代碼片段如下。要保留點,只需將此屬性設置爲點字符 - 即將點字符替換爲它自己。

public static string IdAttributeDotReplacement { 
    get { 
     if (String.IsNullOrEmpty(_idAttributeDotReplacement)) { 
      _idAttributeDotReplacement = "_"; 
     } 
     return _idAttributeDotReplacement; 
    } 
    set { 
     _idAttributeDotReplacement = value; 
    } 
} 
+2

看起來奇怪的做法 - 假設它是幫助JQuery默認的。我添加了HtmlHelper.IdAttributeDotReplacement =「。」;到Global Application_Start,我們在8分鐘內重新上線;)謝謝 – 2009-02-24 14:59:04