包含Javascript的Razor标签(在单独的文件中)?

时间:2012-03-20 14:18:11

标签: javascript asp.net-mvc razor

我有兴趣使用更细粒度的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拉入单独的文件并包含它们,我将失去这种能力。是否有我缺少的功能或技术?

2 个答案:

答案 0 :(得分:2)

我自己还没有使用它,但你可能对RazorJs nuget包感兴趣:http://nuget.org/packages/RazorJS

此处作者的主题更多内容如下: http://djsolid.net/blog/razorjs---write-razor-inside-your-javascript-files

答案 1 :(得分:1)

可悲的是没有。在处理服务器端框架和js时,这是一个常见问题。你几乎完全没有参数化,或者将变量声明为全局变量,或者作为某些共享对象的属性。