ASP.net MVC 3 могу ли я заменить все <% = в моих представлениях на <% :? - PullRequest
1 голос
/ 31 августа 2011

У меня есть сайт MVC 3, использующий asp.net 4

по моему мнению, я использовал <%= для вывода данных.

чтение этого поста от Фила Хаака -> http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx

Он предполагает, что <% = должно быть удаленной памятью, если вы используете .net 4. </p>

Я нашел и заменил все, в одном из моих представлений заменив

<%= to <%:

и все работает как обычно.

Итак, мой вопрос, могу ли я пойти дальше и сделать глобальную замену для всех моих взглядов? Есть ли какие-либо проблемы, о которых нужно знать?

Truegilly

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Будьте осторожны, как будто у вас есть что-то вроде этого:

<%= Html.Encode(Model.Foo) %>

вы можете получить двойную кодировку, когда получите:

<%: Html.Encode(Model.Foo) %>

Тогда как правильным будет:

<%: Model.Foo %>

Лично я всегда склонен использовать:

<%= Html.DisplayFor(x => x.Foo) %>

Так что это не так просто, как простой поиск и замена. Там могут быть некоторые критические модификации.

0 голосов
/ 31 августа 2011

Все, что Дарин сказал и это:

После форматирования с HTML

Помните, что после форматирования выходных данных вы можете добавить в него HTML-код, как в

<%= this.Model.Explanation.Replace("\n", "<br/>") %>

Это явно не сработает после того, как вы просто замените <%= на <%:.

...