2012-03-20 85 views
2

我有兴趣使用更精细的Javascript包含文件来增强可维护性。但是,我错过了一些东西。我是否还可以“覆盖”或包含我的Razor视图上下文中的部分?比方说,我的JavaScript包括如下:包含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

我敢肯定你会必须通过在函数中添加一些参数来将任何服务器数据传递给JavaScript。 – 2012-03-20 14:24:45

回答

1

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