Viewbag 值在适当的情况下呈现。我如何强制它在预期的情况下呈现?
Viewbag value is rendering in proper case. How do I force it to render in the intended case?
在我的控制器中,我将 Viewbag 值设置为 false
,但是当我在视图上渲染它时,它会出现 False
。我该如何防止这种情况?
我的控制器:
ViewBag.IsEditable = false;
我的看法:
$.fn.editable.defaults.disabled =@ViewBag.IsEditable;
因为它是用大写字母 F 呈现的,所以布尔值不适用于我的 Jquery 调用。
您有一个布尔值,您想要计算该值以创建一些 Javascript 代码。在这种情况下,@ViewBag.IsEditable
基本上是在您的布尔值上调用 ToString()
,这会产生大写的 True 或 False。
C# 确实有小写关键字 true 和 false,但它们是代表布尔对象的文字,它总是 returns 调用 ToString()
时的大写 True 或 False。
我建议使用三元运算符计算布尔值。
$.fn.editable.defaults.disabled = @( ViewBag.IsEditable ? "true" : "false");
更清楚地了解这里发生了什么的方法可能是这样写:
@( ViewBag.IsEditable ?
"$.fn.editable.defaults.disabled = true;" :
"$.fn.editable.defaults.disabled = false;")
你混淆了你的类型。 true
和 false
关键字是布尔值。在 .NET 世界中,.ToString()
分别表示为 "True" 和 "False"。为了让您的原始代码正常工作,您可以尝试
$.fn.editable.defaults.disabled =@ViewBag.IsEditable.ToString().ToLower()
您可能想考虑使用扩展方法来简化操作。请注意,您需要在视图中包含扩展 class 的命名空间 - 直接或通过 web.config。该标志还需要成为模型的一部分(或转换为 bool 以便它可以解析扩展方法)
public static class BooleanExtensions
{
public static string AsJs(this bool source)
{
return source ? "true" : "false";
}
}
用作
$.fn.editable.defaults.disabled = @(((bool)ViewBag.IsEditable).AsJs())
或
$.fn.editable.defaults.disabled = @Model.IsEditable.AsJs()
在我的控制器中,我将 Viewbag 值设置为 false
,但是当我在视图上渲染它时,它会出现 False
。我该如何防止这种情况?
我的控制器:
ViewBag.IsEditable = false;
我的看法:
$.fn.editable.defaults.disabled =@ViewBag.IsEditable;
因为它是用大写字母 F 呈现的,所以布尔值不适用于我的 Jquery 调用。
您有一个布尔值,您想要计算该值以创建一些 Javascript 代码。在这种情况下,@ViewBag.IsEditable
基本上是在您的布尔值上调用 ToString()
,这会产生大写的 True 或 False。
C# 确实有小写关键字 true 和 false,但它们是代表布尔对象的文字,它总是 returns 调用 ToString()
时的大写 True 或 False。
我建议使用三元运算符计算布尔值。
$.fn.editable.defaults.disabled = @( ViewBag.IsEditable ? "true" : "false");
更清楚地了解这里发生了什么的方法可能是这样写:
@( ViewBag.IsEditable ?
"$.fn.editable.defaults.disabled = true;" :
"$.fn.editable.defaults.disabled = false;")
你混淆了你的类型。 true
和 false
关键字是布尔值。在 .NET 世界中,.ToString()
分别表示为 "True" 和 "False"。为了让您的原始代码正常工作,您可以尝试
$.fn.editable.defaults.disabled =@ViewBag.IsEditable.ToString().ToLower()
您可能想考虑使用扩展方法来简化操作。请注意,您需要在视图中包含扩展 class 的命名空间 - 直接或通过 web.config。该标志还需要成为模型的一部分(或转换为 bool 以便它可以解析扩展方法)
public static class BooleanExtensions
{
public static string AsJs(this bool source)
{
return source ? "true" : "false";
}
}
用作
$.fn.editable.defaults.disabled = @(((bool)ViewBag.IsEditable).AsJs())
或
$.fn.editable.defaults.disabled = @Model.IsEditable.AsJs()