Как сделать встроенный код Razor в некотором HTML? - PullRequest
5 голосов
/ 23 сентября 2011

Что я хочу сделать:

<div class='duck@if (this.Model.quacker) { -noisy }'>quack</div>

т.е.либо

<div class='duck'>quack</div>

, либо

<div class='duck-noisy'>quack</div>

Однако я не совсем понимаю синтаксис.Я пробовал @:-noisy, но это выдает такие ошибки, как

Убедитесь, что у вас есть соответствующий символ "}" для всех символов "{" в этом блоке

Iпробовал также @: - шумно @ но та же ошибка.Что мне делать?

Ответы [ 3 ]

5 голосов
/ 23 сентября 2011

Элемент снова перейдет в HTML. Как это:

<div class='duck@if (this.Model.quacker) { <text>-noisy</text> }'>quack</div>
1 голос
/ 23 сентября 2011

должно быть так

<div @if(this.Model.quacker) 
{
@:class='duck-noisy' 
}else{
@:class='duck'
}>quack</div>
1 голос
/ 23 сентября 2011

сделать это следующим образом:

@{
    var poo = string.Format("{0}{1}", "duck", (this.Model.quacker) ? "-noisy" : "");
}

<div class='@poo'>quack</div>

UPDATE

Ниже приведено лучшее решение:

<div class='@("duck")@if(this.Model.quacker){<text>-noisy</text>}'>quack</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...