【问题标题】:Mixing Razor and Javascript: Assigning a number from Model to a Javascript variable in a view混合 Razor 和 Javascript:将模型中的数字分配给视图中的 Javascript 变量
【发布时间】:2013-09-30 08:29:59
【问题描述】:

我很难通过 Razor 将模型中的基本数字分配给 Javascript 变量。我想出的只是下面的代码,它可以工作,但相当难看,因为我必须将字符串值转换为数字。有没有其他方法可以立即以数字格式获取它而无需任何转换?

var MyNumber = parseInt('@Model.MyNumber');

【问题讨论】:

标签: javascript asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

你应该可以这样做:

var MyNumber = @Model.MyNumber;

或者更好的是,使用方括号使 Razor 部分明确(因此很明显分号是 Javascript 分号):

var MyNumber = @(Model.MyNumber);

【讨论】:

  • 谢谢,效果很好。我之前实际上尝试过您的建议,但我没有测试输出,因为我的 Visual Studio 2012 在这两种情况下都给出了语法错误(警告)(可能是错误?)。我想我必须停止关注 Visual Studio 所说的内容,而只关注代码。
  • @user405723 VS2012 在这件事上也为我报告了一个语法错误 - 看起来很常见 - stackoverflow.com/a/12559317/300685
  • 这是 VS2012 和 VS2013 中的一个 bug。我向微软发送了一份错误报告,他们回答说“这是一个非常复杂的问题要解决”。我不了解你们,但最近我开始认为 Visual Studios 的质量控制已经溜走了。
【解决方案2】:

如果您坚持消除 Visual Studio 错误,则将 Razor 模板部分包装在一个标识函数调用中,成本低于解析:

var noop = function(x) { return x; }
var MyNumber = noop(@Model.MyNumber);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    相关资源
    最近更新 更多