razor - 如何在 Razor MVC 4 中添加具有条件值的第二个 css 类

标签 razor asp.net-mvc-4 html

虽然 Microsoft 已经创建了一些 automagic rendering of html attributes在 Razor MVC4 中,我花了很长时间才弄清楚如何基于条件 Razor 表达式在元素上呈现第二个 css 类。我想和你分享。

基于模型属性@Model.Details,我想显示或隐藏列表项。如果有细节,应该显示一个div,否则应该隐藏。使用 jQuery,我需要做的就是分别添加一个类显示或隐藏。出于其他目的,我还想添加另一个类,“细节”。所以,我的标记应该是:

<div class="details show">[Details]</div><div class="details hide">[Details]</div>

下面,我展示了一些失败的尝试(结果标记假设没有细节)。

这个:<div @(@Model.Details.Count > 0 ? "class=details show" : "class=details hide")> ,

将呈现:<div class="details" hide=""> .

这个:<div @(@Model.Details.Count > 0 ? "class=\"details show\"" : "class=\"details hide\"")> .

将呈现:<div class=""details" hide&quot;=""> .

这个:<div @(@Model.Details.Count > 0 ? "class='details show'" : "class='details hide'")>

将呈现:<div class="'details" hide&#39;=""> .

这些都不是正确的标记。

最佳答案

我相信观点仍然存在有效的逻辑。但是对于这种事情我同意@BigMike,最好放在模型上。话虽如此,可以通过三种方式解决问题:

你的答案(假设这行得通,我还没试过):

<div class="details @(@Model.Details.Count > 0 ? "show" : "hide")">

第二个选项:

@if (Model.Details.Count > 0) {
    <div class="details show">
}
else {
    <div class="details hide">
}

第三种选择:

<div class="@("details " + (Model.Details.Count>0 ? "show" : "hide"))">

关于razor - 如何在 Razor MVC 4 中添加具有条件值的第二个 css 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15700741/

相关文章:

razor - 如何使用包含 Razor 标记的内容作为方法的参数?

javascript - 将控件标签更改为按钮以访问 Razor View 中的我的条款和条件页面

javascript - jQuery动画批量图像

javascript - 从 PHP 动态上传的目录中存在的 .txt 文件中查找关键字

c# - 如何从整数列表中设置选择元素的值和文本值

razor - 如何将 razor View 分发到 .NET Core 中的另一个应用程序

javascript - 如何使用模型将列表从 View 正确连接到 Controller

c# - MVC 4 区域路由不工作

asp.net-mvc-4 - MVC 4 - 无法使用 NuGet 包管理器控制台创建数据库

html - Twitter Bootstrap - 让行占据剩余高度