正确隐藏ASP.NET MVC加载的方法

时间:2012-09-27 22:12:58

标签: asp.net-mvc html5 razor

所以我有一个表格两个两个输入,“免费”和“价格”。免费是一个复选框,如果选中此框,则不应显示价格框,如果未选中,则价格框应显示。

我可以轻松挂钩onChecked并在页面加载后切换可见性,但问题是预加载最佳做法。

据我所知,这里有三个主要解决方案: -

  1. 设置内联样式以根据起始模型设置可见性,即@(model.Free?“hidden”:“visibile”)这似乎是一种不好的做法,因为不应该是CSS从结构上分离出来,这有点混合两者。

  2. 设置一个jQuery处理程序以在加载时触发以检查复选框状态,这种方法的问题是它在发射之前几秒钟就会出现“闪烁”

  3. 我遗失的其他一些事情......

  4. 有什么建议吗?

1 个答案:

答案 0 :(得分:2)

1

大多数css样式最好分成外部样式表,但对于简单的style="display:none;",内联样式很好。

此外,从MVC4开始,如果变量为null,Razor将不会呈现该属性。

@{
    var displayIt = Model.Free ? "display:none;" : null;
}
<div style="@displayIt">
    The above style attribute will not be rendered when displayIt is null
    (in MVC4)
</div>