阻止ASP.NET MVC在Html Helper ID中使用下划线替换句点

时间:2009-02-24 14:44:28

标签: javascript jquery asp.net-mvc prototype

刚刚升级到最新的ASP.NET MVC候选版本时,我注意到,当使用Html Helpers时,任何带有句点“。”的名称。在输出元素的ID时,它会被下划线“_”替换。

我相信这是to aid in using JQuery并且期间的使用是为了帮助使用ModelBinders。这打破了我们使用原型的所有javascript,因为ID已经全部改变了。

有没有办法轻松关闭此功能?

1 个答案:

答案 0 :(得分:14)

从ASP.NET MVC RC1发行说明(第15页)。

  

在此版本中,默认为点   字符会自动替换   用下划线表示   ID属性。因此示例TextBox   呈现以下标记:

     

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

     

要改变   默认替换字符,你可以   设置   HtmlHelper.IDDotReplacementChar   财产到你的角色   想改用。

FYI。查看http://www.codeplex.com/aspnet处的源代码,看来RC1中属性的真实名称是IdAttributeDotReplacement。相关的代码段如下。要保留点,您只需将此属性设置为点字符 - 即将点字符替换为自身。

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