Как можно отключить кодировку html для текстового поля?

У меня есть некоторые проблемы со значением элемента управления вводом текстового поля на странице ascx. Его значение каким-то образом всегда закодировано в html, и я не знаю, как его можно отключить. Например, когда значение содержит символ <, оно всегда преобразуется в &lt;. Странно то, что это происходит только с такими полями, как Name.Lastname (у которых есть дочернее свойство). Моей первой мыслью было, что это может быть вызвано методом расширения Html.

Html.TextBoxFor(m => m.Name.LastName, new { maxlength = "100" }) 

но это не так, потому что, когда я использую ввод html напрямую, его значение все еще закодировано:

<input id="Name_LastName" maxlength="100" 
       name="Name.LastName" 
       type="text" value="<%= Model.Name.LastName %>" />

Кто-нибудь знает, как можно отключить html-кодирование значений текстового поля для таких полей, как Name.LastName (с дочерним свойством)?


person Patrick Koorevaar    schedule 08.05.2013    source источник
comment
возможный дубликат потенциально опасного значения Request.Form было обнаружено клиентом   -  person Eduardo Molteni    schedule 08.05.2013
comment
Проверьте этот вопрос: stackoverflow.com/questions/7136944/   -  person DOK    schedule 08.05.2013
comment
разве вы не должны использовать <%:?   -  person Jodrell    schedule 08.05.2013
comment
вы также можете использовать Html.Raw(Model.Name.LastName)   -  person maxlego    schedule 08.05.2013
comment
Странно то, что у меня также есть скрытое поле ввода, которое также инициализируется с помощью Model.Name.LastName, и там оно не закодировано, и даже когда я использую <%= Model.Name.LastName %> (не в поле ввода), я вижу обычный символ '‹'.   -  person Patrick Koorevaar    schedule 08.05.2013


Ответы (1)


После дополнительных исследований я обнаружил, что это было вызвано функцией javascript, переменные которой были инициализированы с использованием <%:, и эта функция использовалась для инициализации текстовых полей. Так что, в конце концов, это не имело ничего общего с дочерними свойствами. Я изменил <%: на <%= в части javascript:

var lastName = "<%: Model.Name.LastName %>";

in

var lastName = "<%= Model.Name.LastName %>";

person Patrick Koorevaar    schedule 10.05.2013
comment
Если это решило вашу проблему, вы должны принять свой собственный ответ. - person emre nevayeshirazi; 10.05.2013
comment
Да, спасибо, но мне пришлось ждать 2 часа, чтобы принять;) - person Patrick Koorevaar; 10.05.2013