Предотвращение ASP.NET MVC от замены периода с подчеркиванием в идентификаторах помощника HTML - PullRequest
7 голосов
/ 24 февраля 2009

Только что обновившись до последней версии ASP.NET MVC Candidate, я заметил, что при использовании Html Helpers любое имя с точкой "." в нем это будет заменено символом подчеркивания "_" при выводе идентификатора элемента.

Я считаю, что это , чтобы помочь в использовании JQuery , а использование периода - в использовании ModelBinder. Это сломало весь наш javascript, который использует прототип, так как все идентификаторы изменились.

Есть ли способ легко отключить эту функцию?

1 Ответ

14 голосов
/ 24 февраля 2009

Из заметок о выпуске 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;
    }
}
...