在这个简单的 CSS Knockout 绑定中
<tag data-bind="css: { 'class_1': condition1, 'class_2': condition2 }" />
我想移植class_1
和class_2
C# 变量。这是我的第一次尝试:
<tag data-bind="css: { '@class1': condition1, '@class2': condition2 }" />
其他尝试导致我不得不声明一个包含绑定语句的单独变量。
string bind = string.Format("'{0}': condition1, '{1}': condition2", class1, class2)
<tag data-bind = "css: { @bind }" />
最后:
string bind = string.Format("css: {{ '{0}': condition1, '{1}': condition2 }}", class1, class2)
<tag data-bind = "@bind" />
这些都没有阻止页面的呈现,但前两个结果在 Visual Studio 中指示语法错误。我想做这个绑定:
- 无需分离一个单独的变量
- 在 Visual Studio 2012 中没有弹出任何语法错误(并且搞砸了代码崩溃)
可能吗?
最后一个示例,唯一一个不给出语法错误的示例,牺牲了代码的可读性,尤其是对于较大的语句。有没有其他看起来更像我的第一次尝试的选择?Knockout MVC 似乎有点过于侵入性:有没有类似的东西,但只能解决这个问题?