Viewbag值在适当的情况下呈现。如何强制它在预期的情况下渲染?

时间:2015-01-12 18:29:22

标签: jquery asp.net-mvc razor

在我的控制器中,我将Viewbag值设置为false但是当我在视图上渲染它时,它会显示False。我该如何防止这种情况?

我的控制器:

 ViewBag.IsEditable = false;

我的观点:

$。fn.editable.defaults.disabled =@ViewBag.IsEditable;

因为它以Capital F为false呈现,所以布尔值不适用于我的Jquery调用。

2 个答案:

答案 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)

你混淆了你的类型。 truefalse关键字是布尔值。在.NET世界中,.ToString()表示分别为“True”和“False”。为了保持原始代码的正常运行,您可以尝试

$.fn.editable.defaults.disabled =@ViewBag.IsEditable.ToString().ToLower()