剛剛升級到最新的ASP.NET MVC候選版本時,我注意到在使用Html Helpers時,任何名稱都帶有句點「。」。在輸出元素的ID時,它會被下劃線「_」替換。防止ASP.NET MVC在Html Helper IDs中用下劃線代替句號
我相信這是to aid in using JQuery和使用期限是爲了幫助使用ModelBinders。這已經打破了我們所有使用原型的JavaScript,因爲ID已經全部改變了。
有沒有辦法輕鬆關閉此功能?
剛剛升級到最新的ASP.NET MVC候選版本時,我注意到在使用Html Helpers時,任何名稱都帶有句點「。」。在輸出元素的ID時,它會被下劃線「_」替換。防止ASP.NET MVC在Html Helper IDs中用下劃線代替句號
我相信這是to aid in using JQuery和使用期限是爲了幫助使用ModelBinders。這已經打破了我們所有使用原型的JavaScript,因爲ID已經全部改變了。
有沒有辦法輕鬆關閉此功能?
從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;
}
}
看起來奇怪的做法 - 假設它是幫助JQuery默認的。我添加了HtmlHelper.IdAttributeDotReplacement =「。」;到Global Application_Start,我們在8分鐘內重新上線;)謝謝 – 2009-02-24 14:59:04