如何在剃刀视图中的html标签内使用C#?

时间:2015-12-10 20:02:20

标签: c# razor

我试图使用内联css和C#条件隐藏html行,但我没有正确获取语法。 (我知道如何使用jQuery隐藏行但我想使用内联css)

我的尝试:<tr @{if (Model.Loan.IsValid != "Y") {@:style="display:None;"}}>

另一次尝试:<tr @(Model.Loan.IsValid != "Y"? "style=display: None;":"")>显示为<tr style="display:" none;="">

4 个答案:

答案 0 :(得分:1)

你可以这样试试。使用@:打破C#代码,这样就可以在C#语句的中间开始使用HTML。

<tr 
    @if(Model.Loan.IsValid != "Y") 
    {
        @:style="display:none;"
    }
>

<tr>

答案 1 :(得分:1)

怎么样:

<tr @(Html.Raw(Model.Loan.IsValid != "Y"? "style=\"display: None;\"":""))>

编辑:我建议使用类而不是样式

答案 2 :(得分:0)

我相信您正在尝试执行以下操作:

@Html.DisplayFor(content => 
      Model.Loan.IsValid != "Y" ? "<tr style="display: none;"></tr>" : "<tr></tr>");

如果你试图用一条线简洁。在这种情况下,三元组将是理想的。我使用DisplayFor,但根据您的模型,它可能不太理想,没有更多信息。 Raw可能更好。

答案 3 :(得分:0)

在一行中实现此目的的一种方法是使用如下变量:

<tr style="display: @{ var display = (Model.Loan.IsValid != "Y") ? "none" : ""; @display; }">  
</tr>

丽。