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

Допустим, в моей модели есть функция, которая генерирует тег стиля на основе 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>

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

7 голосов | спросил roryok 12 MarpmMon, 12 Mar 2012 15:02:27 +04002012-03-12T15:02:27+04:0003 2012, 15:02:27

2 ответа


0

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

public IHtmlString GetStyle(int? size)
{
    if(size > 99)
        return new HtmlString("style=\"margin: 20px;\"");
    else
        return new HtmlString("");
}
ответил Rupo 12 MarpmMon, 12 Mar 2012 15:18:59 +04002012-03-12T15:18:59+04:0003 2012, 15:18:59
0

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

public string GetStyle(int? size){
    if(size > 99)
        return "style=margin:20px;";
    else
        return "";
}
ответил Nathan Phillips 16 +04002014-10-16T15:48:37+04:00312014bEurope/MoscowThu, 16 Oct 2014 15:48:37 +0400 2014, 15:48:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132