ASP.net MVC 3 могу ли я заменить все <% = в моих представлениях на <%:?
У меня есть сайт MVC 3, используя asp.net 4
по моему мнению, я использовал <%=
для вывода данных.
читая этот пост Фила Хака -> http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx
Он предполагает, что <% = должно быть удаленной памятью, если вы используете.net 4.
я сделал поиск и заменил все, на одном из моих взглядов, заменяющих
<%= to <%:
и все работает как обычно.
так что мой вопрос, могу ли я пойти дальше и сделать глобальную замену на все мои взгляды? Есть ли какие-либо проблемы, о которых нужно знать?
Truegilly
2 ответа
Будьте осторожны, как будто у вас есть что-то вроде этого:
<%= Html.Encode(Model.Foo) %>
вы можете получить двойное кодирование, когда получите:
<%: Html.Encode(Model.Foo) %>
Тогда как правильным будет:
<%: Model.Foo %>
Лично я склонен всегда использовать:
<%= Html.DisplayFor(x => x.Foo) %>
Так что это не так просто, как простой поиск и замена. Там могут быть некоторые критические модификации.
Все, что сказал Дарин и это:
После форматирования с HTML
Будьте внимательны, когда форматируете вывод, и добавляете в него немного HTML, как в
<%= this.Model.Explanation.Replace("\n", "<br/>") %>
Это явно не сработает после того, как вы просто замените <%=
с <%:
,