我正在Asp.Net MVC 3项目中工作,在我的一个javascript文件中,向用户显示一条消息。此消息目前使用一种语言,但我希望此消息为多种语言。我不想将这些语言直接存储在javascript文件中,而是存储在数据库中。我想知道是否可以将数据(字符串)从视图传输到javascript文件。
我发现的一个解决方案是在隐藏字段中从我的视图中设置数据,然后从我的javascript文件中提取它。这个解决方案的问题是我必须放置很多隐藏的字段,这很难维护。
这个问题还有其他解决办法吗?
答案 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>