使用Razor,我如何渲染布尔到JavaScriptvariables?
如何在cshtml文件中将布尔值呈现为JavaScriptvariables?
目前这显示一个语法错误:
<script type="text/javascript" > var myViewModel = { isFollowing: @Model.IsFollowing // This is a C# bool }; </script>
你也可以尝试:
isFollowing: '@(Model.IsFollowing)' === '@true'
而更好的方法是使用:
isFollowing: @Json.Encode(Model.IsFollowing)
JSON布尔值必须是小写的。
因此,试试这个(并确保nto上有//
注释):
var myViewModel = { isFollowing: @Model.IsFollowing.ToString().ToLower() };
或者(注意:你需要使用命名空间System.Xml
):
var myViewModel = { isFollowing: @XmlConvert.ToString(Model.IsFollowing) };
var myViewModel = { isFollowing: '@(Model.IsFollowing)' == "True"; };
为什么是True
而不是true
你问…好问题:
为什么Boolean.ToString输出“True”而不是“true”
因为search带给我的是:在ASP.NET Core中, IJsonHelper
没有Encode()
方法。 而是使用Serialize()
。 例如:
isFollowing: @Json.Serialize(Model.IsFollowing)
这是另一个select考虑,使用! 转换为布尔值。
isFollowing: !!(@Model.IsFollowing ? 1 : 0)
这将在客户端生成以下内容,其中1被转换为true,0为false。
isFollowing: !!(1) -- or !!(0)
- 使用razor时closuresWebFormViewEngine?
- 具有键“XXX”的ViewData项的types为“System.Int32”,但必须为“IEnumerable <SelectListItem>”types
- 如何从MVC Razor标记获取查询string参数?
- 哪里和如何链接_ViewStart.cshtml布局文件?
- 上传文件与ASP.Net MVC – 获取名称,但没有文件stream,我做错了什么?
- 如何从HttpPost创build操作方法中知道选中的checkbox?
- ASP / NET MVC:testing控制器与会话? 惩戒?
- ASP.NET MVC自定义error handlingApplication_Error Global.asax?
- 将现有的ASP.NET MVC应用程序与Orchard CMS集成