有条件地将样式应用于MVC Razor视图中的表

时间:2015-06-11 13:37:03

标签: vb.net if-statement asp.net-mvc-5 razorengine

我有一个输出表格的部分视图。我从多个视图调用此Partial,其中一个用作电子邮件模板。

由于您在尝试发送漂亮的HTML电子邮件时无法依赖样式表(因为邮件客户端会忽略它们),我想特别指定部分中的表格样式属性,但是从某种观点来看。

关于是否应该应用这种格式,我可以传入ViewData,但我真的想找出写'条件'部分最简单/最干净的方法。

例如,我可以这样做:

@modeltype ResultsData

@code
    Dim booFullStyling As Boolean = ViewData("FullStyling")

End Code
<h3>Criteria Specified</h3>

<div class="container_criteria">

    <button type="button" class="btn btn-primary btn-xs header hidden-print">
        Expand
    </button>

    <div class="content">

        @If booFullStyling Then
            @<table width="100%" cellpadding="7" style="color: #333;border:#666 medium; font-family: Helvetica, Arial, sans-serif;border-collapse: collapse; border-spacing: 0;">
                ...
            </table>
        Else
            @<table class="table table-condensed table-striped" >
                ...
            </table>
        End If


    </div>
</div>

但我正在重复我写的代码,留下错误的空间。

我也可以这样做:

    <table class="@IIf(booFullStyling,"","table table-condensed table-striped")" style="@iif(booFullStyling,"color: #333;border:#666 medium; font-family: Helvetica, Arial, sans-serif;border-collapse: collapse; border-spacing: 0;","")" >
        ...
    </table>

但这样做很麻烦,并且在不适用时会生成空的类和样式属性。

我还应该提到我使用的是VB,而不是C#。

我找到了类似的帖子(就像这个one),但到目前为止还没有谈到我想要实现的目标。

0 个答案:

没有答案