Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Razor和Javascript的混合:从模型中为视图中的Javascript变量分配一个数字_Javascript_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

Razor和Javascript的混合:从模型中为视图中的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

我很难通过Razor将模型中的一个基本数字分配给Javascript变量。我想到的只是下面的代码,它可以工作,但相当难看,因为我必须将字符串值转换为数字。有没有其他方法可以不进行任何转换就直接获得数字格式的文件

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);