将数据从视图传输到javascript的最佳方式

时间:2012-08-02 02:21:33

标签: c# javascript asp.net-mvc-3 hidden-field

我正在Asp.Net MVC 3项目中工作,在我的一个javascript文件中,向用户显示一条消息。此消息目前使用一种语言,但我希望此消息为多种语言。我不想将这些语言直接存储在javascript文件中,而是存储在数据库中。我想知道是否可以将数据(字符串)从视图传输到javascript文件。

我发现的一个解决方案是在隐藏字段中从我的视图中设置数据,然后从我的javascript文件中提取它。这个解决方案的问题是我必须放置很多隐藏的字段,这很难维护。

这个问题还有其他解决办法吗?

2 个答案:

答案 0 :(得分:2)

您可以尝试JavaScriptModel(http://jsm.codeplex.com)。

使用此库,您可以通过在控制器操作中调用以下函数来添加变量:

this.AddJavaScriptVariable("VariableNameInJavaScript", SomeValue);

您可以传递基本类型或复杂类型。

此外,您可以在控制器操作中使用以下代码执行javascript函数:

this.AddJavaScriptFunction("FunctionInJavaScript", SomeParameter, AnotherParameter);

答案 1 :(得分:1)

是的,你走在正确的道路上。您需要做的就是适当地补充模型并使用Razor语法将值从服务器传递到客户端“沿着以下几行”:

<script src="@Url.Content("~/scripts/yourapi.js")"></script>
<script>
    yourapi.foo('@Model.SomeValue');
</script>