Как правильно выводить атрибуты HTML / текст с кавычками в Razor / MVC3? - PullRequest
7 голосов
/ 12 марта 2012

Допустим, у меня есть функция в моей модели, которая генерирует тег стиля на основе int

public string GetStyle(int? size){
    if(size > 99)
        return "style=\"margin: 20px;\"";
    else
        return "";
}

Если я сделаю это, используя

<li @GetStyle(123)>123</li>

Это выводит это:

<li style=""margin:20px;"">123</li>

(обратите внимание на двойные двойные кавычки). Если я изменю экранированные двойные кавычки в функции на одинарные кавычки, она выдаст следующее:

<li style="'margin:20px;'">123</li>

Ни то, ни другое не правильно, и я вынужден либо вывести пустой тег стиля, если стиль не требуется.

Ответы [ 2 ]

6 голосов
/ 12 марта 2012

Измените свой метод, чтобы он вместо этого возвращал IHtmlString, что-то вроде этого:

public IHtmlString GetStyle(int? size)
{
    if(size > 99)
        return new HtmlString("style=\"margin: 20px;\"");
    else
        return new HtmlString("");
}
0 голосов
/ 16 октября 2014

Если вы просто опустите кавычки вокруг значения, они будут автоматически добавлены для вас.

public string GetStyle(int? size){
    if(size > 99)
        return "style=margin:20px;";
    else
        return "";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...