将数据从视图传输到javascript的最佳方式
我在一个Asp.Net MVC 3项目中工作,在其中一个JavaScript文件中向用户显示一条消息。此消息目前使用一种语言,但我希望此消息使用多种语言。我不想将这些语言直接存储在JavaScript文件中,而是存储在数据库中。我想知道是否可以将数据(字符串)从视图传输到JavaScript文件。将数据从视图传输到javascript的最佳方式
我发现的一个解决方案是从我的视图中隐藏字段中设置数据,然后从我的JavaScript文件中提取它。这个解决方案的问题是我必须放置很多隐藏的字段,这很难维护。
有没有其他解决方案来解决这个问题?
是的,你在正确的道路上。所有你需要做的是适当地滋润你模型,并用剃刀语法从服务器到客户端传递价值“的内容大致如下”:
<script src="@Url.Content("~/scripts/yourapi.js")"></script>
<script>
yourapi.foo('@Model.SomeValue');
</script>
Thanx @Xander试图帮助我。我已经想过你的建议,但如果JavaScript已经在客户端浏览器的缓存中,从视图中分配值将被传输?如果JavaScript文件在浏览器缓存中,并且视图分配了值服务器端,则该值将永远不会被浏览器下载,或者我的逻辑中可能会出错? – Samuel 2012-08-02 14:00:39
您可以尝试JavaScriptModel(http://jsm.codeplex.com)。
有了这个库,你可以通过调用下面的函数在你的控制器操作添加变量:
this.AddJavaScriptVariable("VariableNameInJavaScript", SomeValue);
您可以通过基本类型或复杂类型。
而且你可以在你的控制器动作执行与下面的代码JavaScript函数:
this.AddJavaScriptFunction("FunctionInJavaScript", SomeParameter, AnotherParameter);
以JavaScript的? – Yasser 2012-08-02 05:23:13