在asp.net mvc 3应用程序中,我有两个视图,它们具有相同的javascript函数集。 Javascript是完全相同的,所以我想重新组织这段代码,并将所有的javascript代码解压缩到.js文件中,以便将它包含在两个chtml文件中。
问题是其中一个javascript函数使用C#代码从模型中获取一些数据。如何将C#代码插入到javascript(.js)文件中,或者如何将所有这些代码提取到单独的chtml文件中并将其包含在以前的两个文件中?
答案 0 :(得分:3)
你不能本地,或者至少你不应该。两者都是出于维护和性能原因。
您应该重新设计javascript以使用参数化方法,并从视图中初始化自定义值。
像jQuery一样思考。许多插件都是可用的,标准化的,但是它们会在消耗它们的页面上使用特定值进行初始化。
答案 1 :(得分:0)
如果您的javascript包含不同的数据,则它们不相同。
我会将相同的功能提取到.js文件中,并在您的页面中生成.js可以使用的一大块javascript数据,或者重构为返回JSON的服务。
答案 2 :(得分:0)
您可以使用部分视图来编写<script>
标记,并从两个页面调用该标记。如果您认为更合适,也可以使用HTML帮助程序。
但是,我也不建议。
一个选项是找到一种方法将更改的值放到页面上(可能是html5 data-
属性),然后使用外部.js文件作为JavaScript代码,不受C#操纵,而是从HTML本身获取数据。
另一个(不太漂亮)选项是让每个页面在<script>
标记中设置一系列JS变量,然后在外部.js文件中使用它们。