【发布时间】:2012-08-02 14:36:12
【问题描述】:
所以我有一个问题...我在我的网络应用程序中分离关注点:剃须刀页面中的 HTML 和 js 文件中的 JS。我的问题在于我想使用来自服务器的视图模型中传递的控制器中的数据作为选择列表的选项。问题在于我将 js 与 HTML 分开,无法访问 js 文件中的 Razor。
我的视图模型中有一个项目列表...
public List Stuffs { get; set; }
我在服务器端对它进行 json 编码,并确保注意循环引用,所以它看起来像这样
[{"id":1,"name":"blah"},{"id":2,"name":"blah2"},{"id":3,"name":"blah3"},{"id":4,"name":"blah4"}]
问题是,我想保持关注点分离,那么如何将该数组放入我的 js 文件中,以便可以使用敲除将其绑定到选择列表?我绝对不想再次往返服务器。
【问题讨论】:
-
@ErikPhilips 我认为这只是他的问题的一半。他想要某种方式让 javascript 与 Razor 保持分离。该答案仅使用 Razor。
-
@Tyrsius 好吧,只有三个可能的答案,将 Javascript 嵌入 Razor 视图中,并在加载时将其连接起来(如我链接的答案与您在此问题上的答案相同)或AJAX 页面加载后的请求,或者有一个控制器返回模型作为 JS 文件包含(可怕,还不如 #2 )。
-
@ErikPhilips 您链接的答案与我的答案不同。它没有显示如何将 javascript 对 Razor 生成的 JSON 的使用保存在单独的文件中。 这是一个重要的区别。
-
@Tyrsius 啊是的,我明白了,你是对的。对我来说,从我提供的答案到你的答案的过渡是如此基本,我看了一遍。
标签: asp.net-mvc-3 razor knockout.js