javascript - MVC 3 Razor View : Generating JavaScript from a boolean model value

标签 javascript asp.net-mvc-3 razor

我正在使用 ASP.Net MVC 3 Razor View 引擎。

我需要根据我的 View 模型中的值在我的 View 中生成一些 JavaScript 代码。我需要使用的值是一个 bool 值,在这个例子中我们称之为 IsSet .

所以我想做的是基于这个值创建一个 JavaScript bool 值,以后可以在脚本中使用它。

请记住,对于以下所有示例,我的 View 顶部都有这段代码......

@{ string IsSet = Model.IsSet  ? "true" : "false"; }

注意 : 以下所有示例都是 JavaScript。

第一次尝试 ...
var IsSet = @(IsSet);

...这确实有效,问题是它破坏了自动格式化 (CTRL + E, D) 在 VS 2010 中由于 JavaScript 格式错误 - 正如您所料,这是 Not Acceptable 。

第二次尝试 ...
var IsSet = "@(IsSet)";

...我知道,JavaScript 很聪明,它会在需要时自动解析我的字符串。哎呀,忘了它是一个字符串类型,除了空之外的任何东西都会评估为真。

第三次尝试 ...
var IsSet = Boolean("@(IsSet)");

....当然这会起作用...不,再次将非空字符串转换为true(解析器错误!)

第四次尝试 ...
var IsSet = "@(IsSet)" === "true";

终于有一些有用的东西了,但对我来说看起来不太好。

如果需要,我会使用它,但最终我的问题是:有没有更好的方法来处理这种情况?也许,我第一次尝试中的不良行为只是微软可能忽略的东西?

如果有人对我来说有一个漂亮而整洁的第五次尝试,那就太好了。

对我来说重要的是 VS 2010 中的自动格式化不会中断

谢谢

最佳答案

我只是在同一个问题上挣扎了大约一个小时。我的最终解决方案相当于以下内容。

var IsSet = @(Model.IsSet.ToString().ToLower()); // Inside JavaScript block

这不需要额外的代码。

关于javascript - MVC 3 Razor View : Generating JavaScript from a boolean model value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8560531/

相关文章:

javascript - 滚动到某个 div 时更改 Logo

javascript - 在 AMD 模块之前添加非 AMD 模块

html - @Html.Raw 在 MVC4 和 IE8 中

asp.net-mvc - razor - 获取部分列表

c# - 扩展 HTML 助手

asp.net-mvc - DropDownListFor SelectedItem 的问题

javascript - JS es6 单击将类添加到另一个元素

asp.net - JQuery 或任何其他 Javascript 库。用于开发 Web 应用程序

android - jQuery 和 MVC3 Razor 在 Android 浏览器上生成奇怪的 URL

visual-studio-2010 - MVC3 发布和 IIS 6