如果条件满足,我正在尝试动态设置div的属性(数据状态)。
我目前正在使用@ Html.Raw帮助器,但是它没有进入元素。
我还尝试使用Response.Write(),但它只是将所有内容写入页面顶部。
有没有最好的方法将其实际嵌入到代码中,或者创建/设置新属性?
@foreach (var r in Model)
{
<div class="marker"
data-date="@r.date_finished"
data-name="@r.name"
@if (r.complete == "CP")
{
@Html.Raw("data-status='complete'");
}
>
</div>
}
答案 0 :(得分:5)
这应该这样做:
<div class="marker"
data-date="@r.date_finished"
data-name="@r.name"
@{if (r.complete == "CP") { <text>data-status='complete'</text> }}>
请注意<text>
标记的用法。这是Razor用来按原样输出内容的特殊标签。
答案 1 :(得分:0)
当我遇到这种情况时,我使用了一个三级表达式:
<div @(r.complete == "CP" ? "data-status='complete'" : "") >
如果你的逻辑更复杂,你也可以使用静态辅助方法。
<div @r.RenderComplete() >
public static class RExtension{
public static string RenderComplete( this R r){
// logic here
}
}