我有兴趣使用更细粒度的Javascript包含文件来增强可维护性。但是,我错过了一些东西。我是否仍然可以“覆盖”或包含我的Razor视图上下文中的部分?假设我的Javascript包含如下:
function CategoriesViewModel() {
var self = this;
self.searchMode = ko.observable("SEARCH"); // Wire up with Knockout.js
}
但是,如果这个脚本作为我的.cshtml Razor视图的一部分内联,我可以做这样的事情:
function CategoriesViewModel() {
var self = this;
self.searchMode = ko.observable("SEARCH"); // Wire up with Knockout.js
self.categories = @Html.JSONFor(Model.LookupForCategories.Select(c => c.Text ));
}
(如果没有语法高亮,我会指出我已经包含了一个服务器标签,它直接从我的服务器端ASP.MVC ViewModel放置了一些Javascript代码/数据。)
如果我将Javascript拉入单独的文件并包含它们,我将失去这种能力。是否有我缺少的功能或技术?
答案 0 :(得分:2)
我自己还没有使用它,但你可能对RazorJs nuget包感兴趣:http://nuget.org/packages/RazorJS
此处作者的主题更多内容如下: http://djsolid.net/blog/razorjs---write-razor-inside-your-javascript-files
答案 1 :(得分:1)
可悲的是没有。在处理服务器端框架和js时,这是一个常见问题。你几乎完全没有参数化,或者将变量声明为全局变量,或者作为某些共享对象的属性。