将服务器端的MVC变量传递给JavaScript

9 浏览
0 Comments

将服务器端的MVC变量传递给JavaScript

我正在寻找关于将服务器端变量从控制器动作传递到网站HTML标记的最佳和最简单的方法,并且希望它们能够被网站上的JavaScript使用。我正在使用asp.net mvc4,并尝试找到推荐的方法来实现这个目标。

0
0 Comments

问题:如何将服务器端的MVC变量传递给JavaScript?

在解决这个问题之前,我们有一些选项可以选择。

一种方法是给元素附加data属性或id,并使用JavaScript获取它们。

使用Razor视图:

JavaScript:

$('#someid').data('name')

另一种方法是直接将数据渲染到script标签中。

使用Razor:

var somevar = ""

你还可以使用Json.Encode来编码更复杂的对象。

var somevar = @Json.Encode(object)

另外要强调Declan的答案,如果你使用了`var somevar = "";`的方法,你必须像他一样将其用引号括起来,否则可能会导致语句读取为`var somevar = ;`。这对于字符串等类型可能很直观,但对于可空布尔值、可空整数等处理时可能不太明显。

我建议使用第一种方法(在div或隐藏的input标签中),以更好地区分内容和代码。一旦在.cshtml文件中引入