Я собирался использовать декларативные HTML-помощники, но потом обнаружил, что они не были реализованы в выпуске MVC 3.
Я пытаюсь заставить старых помощников HTML работать со следующим кодом:
private static String GenerateSingleOptionHTML(Question q) { String ret = ""; for(int i = 0; i < 3; i++) { ret += String.Format("<li><input type=\"radio\" id=\"Q" + i +"\" value=\"" + i + "\" name=\"Q" + i +"\" />" + q.Body + "</li>"); } return ret; }
Игнорируйте html и тэги, так как они работают нормально. На мой взгляд, это: "
Спасибо
Дэвид Нил прав, но в ASP.NET MVC 3 вы должны на самом деле вернуть экземпляр HtmlString, а не MvcHtmlString (хотя оба будут работать):
HtmlString
MvcHtmlString
private static HtmlString GenerateSingleOptionHTML(Question q) { String ret = ""; for(int i = 0; i < 3; i++) { ret += String.Format("<li><input type=\"radio\" id=\"Q" + i +"\" value=\"" + i + "\" name=\"Q" + i +"\" />" + q.Body + "</li>"); } return new HtmlString(ret); }
Вам необходимо вернуть экземпляр MvcHtmlString .Ваша выходная строка кодируется.
Объект MvcHtmlString будет обрабатываться как уже закодированный во время рендеринга (я предполагаю, что вы используете синтаксис <%: %> вместо <%= %> для внедрения HTML на страницу).
<%: %>
<%= %>
return MvcHtmlString.Create(ret);