1

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

我可以在页面加载后轻松挂钩 onChecked 并打开和关闭可见性,但问题是预加载什么是最佳做法。

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

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

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

  3. 我还缺少其他一些东西...

有什么建议吗?

4

1 回答 1

3

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>
于 2012-09-27T22:15:58.517 回答