在我的控制器中,我将Viewbag值设置为false
但是当我在视图上渲染它时,它会显示False
。我该如何防止这种情况?
我的控制器:
ViewBag.IsEditable = false;
我的观点:
$。fn.editable.defaults.disabled =@ViewBag.IsEditable;
因为它以Capital F为false呈现,所以布尔值不适用于我的Jquery调用。
答案 0 :(得分:2)
您有一个要评估的布尔值,以便创建一些Javascript代码。在这种情况下,@ViewBag.IsEditable
基本上是在你的布尔值上调用ToString()
,它会产生大写的True或False。
C#确实使用小写关键字 true 和 false ,但它们是表示布尔对象的文字,在ToString()
时始终返回大写的True或False在它上面被召唤。
我建议使用三元运算符来计算布尔值。
$.fn.editable.defaults.disabled = @( ViewBag.IsEditable ? "true" : "false");
更清楚地了解这里发生的事情可能就是这样写:
@( ViewBag.IsEditable ?
"$.fn.editable.defaults.disabled = true;" :
"$.fn.editable.defaults.disabled = false;")
答案 1 :(得分:0)
你混淆了你的类型。 true
和false
关键字是布尔值。在.NET世界中,.ToString()
表示分别为“True”和“False”。为了保持原始代码的正常运行,您可以尝试
$.fn.editable.defaults.disabled =@ViewBag.IsEditable.ToString().ToLower()