在我的asp.net-mvc文件中,如何将javascript移动到单独的js文件中?
我的视图中有一堆javascript,它变得相当大,所以我想把它移到一个单独的js文件中。我的一个问题是,我有这样一句话:在我的asp.net-mvc文件中,如何将javascript移动到单独的js文件中?,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我的视图中有一堆javascript,它变得相当大,所以我想把它移到一个单独的js文件中。我的一个问题是,我有这样一句话: var tags = <%= new JavaScriptSerializer().Serialize(Model.Tags) %>; var标签=; 我显然不能复制它,因为它有服务器端的asp.net-mvc标记。建议的解决方法是什么: 将这个函数保存在aspx页面中,并让单独的js文件中的javascript调用该函数 其他 这在很大程度上取决于你想要
var tags = <%= new JavaScriptSerializer().Serialize(Model.Tags) %>;
var标签=;
我显然不能复制它,因为它有服务器端的asp.net-mvc标记。建议的解决方法是什么:
这在很大程度上取决于你想要使用它的方式和重复的程度 一些想法:
标记是静态的。那我想那就不需要在模型里了。因此,您可以将它们移动到一个新的控制器动作中,该动作输出scipt。您可以在视图的
部分调用此操作
标记
变化非常频繁(甚至在每次页面加载时)。那么,在一个单独的脚本文件中移动它是没有好处的您可以做的是让JavaScript对象包含从控制器获得的所有信息,并通过位于外部JavaScript文件中的JavaScript函数传递它。您还可以通过options变量传递其他信息 例如:
var options = {
tags: <%= new JavaScriptSerializer().Serialize(Model.Tags) %>
};
initPage(options);
如果使用适当的闭包设置javascript文件,则可以公开一个属性(或者更好地说,是对象/方法的参数),在调用该函数时使用该属性传递该信息 您的Javascript需要如下所示:
var JsFile = (function() {
var tags;
// list all of your methods here.
return {
var setTags = function(_tags) {
tags = _tags;
}
};
})();
var JsFile = (function() {
var tags;
// list all of your methods here.
return {
var setTags = function(_tags) {
tags = _tags;
}
};
})();