将C#代码插入(.js)javascript文件

时间:2012-06-18 12:37:05

标签: c# javascript refactoring extract

在asp.net mvc 3应用程序中,我有两个视图,它们具有相同的javascript函数集。 Javascript是完全相同的,所以我想重新组织这段代码,并将所有的javascript代码解压缩到.js文件中,以便将它包含在两个chtml文件中。

问题是其中一个javascript函数使用C#代码从模型中获取一些数据。如何将C#代码插入到javascript(.js)文件中,或者如何将所有这些代码提取到单独的chtml文件中并将其包含在以前的两个文件中?

3 个答案:

答案 0 :(得分:3)

你不能本地,或者至少你不应该。两者都是出于维护和性能原因。

您应该重新设计javascript以使用参数化方法,并从视图中初始化自定义值。

像jQuery一样思考。许多插件都是可用的,标准化的,但是它们会在消耗它们的页面上使用特定值进行初始化。

答案 1 :(得分:0)

如果您的javascript包含不同的数据,则它们不相同。

我会将相同的功能提取到.js文件中,并在您的页面中生成.js可以使用的一大块javascript数据,或者重构为返回JSON的服务。

答案 2 :(得分:0)

您可以使用部分视图来编写<script>标记,并从两个页面调用该标记。如果您认为更合适,也可以使用HTML帮助程序。

但是,我也不建议。

一个选项是找到一种方法将更改的值放到页面上(可能是html5 data-属性),然后使用外部.js文件作为JavaScript代码,不受C#操纵,而是从HTML本身获取数据。

另一个(不太漂亮)选项是让每个页面在<script>标记中设置一系列JS变量,然后在外部.js文件中使用它们。