Asp.net mvc 如何在一些HTML中内联Razor代码?
我想做的是:Asp.net mvc 如何在一些HTML中内联Razor代码?,asp.net-mvc,asp.net-mvc-3,razor,Asp.net Mvc,Asp.net Mvc 3,Razor,我想做的是: <div class='duck@if (this.Model.quacker) { -noisy }'>quack</div> 庸医 或者 <div class='duck'>quack</div> 庸医 或 庸医 但是,我不能完全正确地理解语法。我尝试了@:-嘈杂的,但这会产生错误,例如 确保所有“{”字符都有一个匹配的“}”字符 在这个街区内 我也尝试了@:-嘈杂@,但出现了相同的错误。我该怎么办?按如下方式执行此操作
<div class='duck@if (this.Model.quacker) { -noisy }'>quack</div>
庸医
或者
<div class='duck'>quack</div>
庸医
或
庸医
但是,我不能完全正确地理解语法。我尝试了@:-嘈杂的,但这会产生错误,例如
确保所有“{”字符都有一个匹配的“}”字符
在这个街区内
我也尝试了@:-嘈杂@,但出现了相同的错误。我该怎么办?按如下方式执行此操作:
@{
var poo = string.Format("{0}{1}", "duck", (this.Model.quacker) ? "-noisy" : "");
}
<div class='@poo'>quack</div>
@{
var poo=string.Format(“{0}{1}”,“duck”,(this.Model.quacker)?“-noised:”);
}
江湖郎中
更新
以下是生成最佳解决方案的方法:
<div class='@("duck")@if(this.Model.quacker){<text>-noisy</text>}'>quack</div>
庸医
应该是这样的
<div @if(this.Model.quacker)
{
@:class='duck-noisy'
}else{
@:class='duck'
}>quack</div>
庸医
元素将再次转换为HTML。如下所示:
<div class='duck@if (this.Model.quacker) { <text>-noisy</text> }'>quack</div>
庸医
您的是解决方案,但它会生成一个空格。应该是这样的:嘎嘎
@arjaninbu我不确定duck-noise是否是合法的类名。如果不是,它将滚到我的解决方案。@arjaninbu查看我的更新答案。它给出了最佳解决方案。不幸的是,您的编辑不起作用,在@if-fo之前必须有一个空格r将其设置为不将其检测为字符串。@SLC如果按照我的示例中所示的方式编写,它肯定会起作用:quack
<div class='duck@if (this.Model.quacker) { <text>-noisy</text> }'>quack</div>