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

ama*_*eur 8 javascript asp.net-mvc asp.net-mvc-4

我正在寻找关于将服务器端变量从控制器操作传递到站点html标记的最佳和最简单方法的反馈,以及它们随后由网站上的javascript使用.

我正在使用asp.net mvc4并尝试找到这样做的推荐方法.

Dec*_*ook 19

你有几个选择.

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

使用剃刀视图:

<div id="someid" data-name="@item.attribute"></div>
Run Code Online (Sandbox Code Playgroud)

JS:

$('#someid').data('name')
Run Code Online (Sandbox Code Playgroud)

或者,您可以将数据直接呈现到脚本标记中.

使用剃须刀:

 var somevar = "@item"
Run Code Online (Sandbox Code Playgroud)

你也可以Json.Encode更复杂的对象.

 var somevar = @Html.Raw(Json.Encode(object))
Run Code Online (Sandbox Code Playgroud)

  • 另外要强调Declan的答案,如果你使用`var somevar ="@item";`方法,你必须将它包装在引号中,否则可能会产生一个读作var`omevar =;`的语句.对于字符串等这似乎是直截了当的,但在处理可空的布尔值,可空整数等时不太明显. (4认同)