Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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
将服务器端mvc变量传递给javascript_Javascript_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

将服务器端mvc变量传递给javascript

将服务器端mvc变量传递给javascript,javascript,asp.net-mvc,asp.net-mvc-4,Javascript,Asp.net Mvc,Asp.net Mvc 4,我正在查看反馈,了解将服务器端变量从控制器操作传递到站点html标记并供站点上的javascript使用的最佳和最简单的方法 我正在使用asp.net mvc4并试图找到推荐的方法。您有两个选择 一种是将数据属性或id附加到元素,并使用javascript获取它们 使用razor视图: <div id="someid" data-name="@item.attribute"></div> 或者,可以将数据直接渲染到脚本标记中 使用剃须刀: var somevar =

我正在查看反馈,了解将服务器端变量从控制器操作传递到站点html标记并供站点上的javascript使用的最佳和最简单的方法


我正在使用asp.net mvc4并试图找到推荐的方法。

您有两个选择

一种是将数据属性或id附加到元素,并使用javascript获取它们

使用razor视图:

<div id="someid" data-name="@item.attribute"></div>
或者,可以将数据直接渲染到脚本标记中

使用剃须刀:

 var somevar = "@item"
您还可以对更复杂的对象进行Json编码

 var somevar = @Html.Raw(Json.Encode(object))

谷歌搜索给出了大量的结果…@emrenevayeshirazi:哦,这是一个多么有用的关于堆栈溢出的评论啊!同样为了强调Declan的答案,如果您使用
var somevar=“@item”
method您必须像他那样将其包装在引号中,否则可能会生成一个var
somevar=。对于字符串之类的东西,这似乎是直截了当的,但在处理可为空的布尔值、可为空的整数等时就不那么明显了。为了更好地分离内容和代码,我推荐第一种方法(在div或隐藏的输入标记中)。当您需要在.cshtml文件中引入-tag时,您就做错了。Off-对于使用webform的用户:使用
var somevar=“”
我认为最好的方法是data attr,因为您的UI代码中没有任何脚本依赖项。函数服务(){this.data=$(“..”).data('info');};var服务=新服务();Service.prototype={doSomething:function(){alert(this.data());}
 var somevar = @Html.Raw(Json.Encode(object))