Razor和Javascript的混合:从模型中为视图中的Javascript变量分配一个数字
我很难通过Razor将模型中的一个基本数字分配给Javascript变量。我想到的只是下面的代码,它可以工作,但相当难看,因为我必须将字符串值转换为数字。有没有其他方法可以不进行任何转换就直接获得数字格式的文件Razor和Javascript的混合:从模型中为视图中的Javascript变量分配一个数字,javascript,asp.net-mvc,asp.net-mvc-4,razor,Javascript,Asp.net Mvc,Asp.net Mvc 4,Razor,我很难通过Razor将模型中的一个基本数字分配给Javascript变量。我想到的只是下面的代码,它可以工作,但相当难看,因为我必须将字符串值转换为数字。有没有其他方法可以不进行任何转换就直接获得数字格式的文件 var MyNumber = parseInt('@Model.MyNumber'); 您应该能够做到这一点: var MyNumber = @Model.MyNumber; 或者更好,使用括号使Razor部分显式(因此分号显然是Javascript分号): 如果您坚持要消除Visu
var MyNumber = parseInt('@Model.MyNumber');
您应该能够做到这一点:
var MyNumber = @Model.MyNumber;
或者更好,使用括号使Razor部分显式(因此分号显然是Javascript分号):
如果您坚持要消除Visual Studio错误,那么在标识函数调用中包装Razor模板部分是可行的,成本低于解析:
var noop = function(x) { return x; }
var MyNumber = noop(@Model.MyNumber);
谢谢,效果很好。实际上,我以前尝试过您的建议,但我没有测试输出,因为我的Visual Studio 2012在这两种情况下都给出了语法错误(警告)(可能是错误?)。我想我必须停止关注Visual Studio所说的内容,只需编写代码。@user405723 VS2012也为我报告了一个语法错误—看起来像是一个常见问题—这是VS2012和VS2013中的一个错误。我给微软发了一份bug报告,他们回答说“这是一个非常复杂的问题要解决”。我不知道你们的情况,但最近我开始认为Visual Studio的质量控制已经消失了。如果你想解决这个问题,请参阅
var noop = function(x) { return x; }
var MyNumber = noop(@Model.MyNumber);