Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ASP.NET MVC路由和路径是js文件_Javascript_Asp.net Mvc_Url_Path - Fatal编程技术网

Javascript ASP.NET MVC路由和路径是js文件

Javascript ASP.NET MVC路由和路径是js文件,javascript,asp.net-mvc,url,path,Javascript,Asp.net Mvc,Url,Path,我们现在面临一个问题。我们有一个相当大的页面,有一个Looong内联脚本,它完成了所有的工作。我们现在想要混淆它,并将其作为一个单独的.js文件使用。但问题是,我们有由Url助手(Url.Content())生成的路径。那么,不使用硬编码的路径字符串将js文件与页面分离的最佳方法是什么呢?您可以创建javascript函数来设置所需的路径,并从页面的一个小脚本部分调用它们 Javascript文件: var resource1; var resource2; function setResou

我们现在面临一个问题。我们有一个相当大的页面,有一个Looong内联脚本,它完成了所有的工作。我们现在想要混淆它,并将其作为一个单独的.js文件使用。但问题是,我们有由Url助手(Url.Content())生成的路径。那么,不使用硬编码的路径字符串将js文件与页面分离的最佳方法是什么呢?

您可以创建javascript函数来设置所需的路径,并从页面的一个小脚本部分调用它们

Javascript文件:

var resource1;
var resource2;

function setResourcesReferences(resource1, resource2, ...) {

}
ASPX文件:

<script type="text/javascript">
   setResourcesReferences(<% Url.Content("Resource1") %>, <% Url.Content("Resource2") %>, ...);
</script>

setResourcesReferences(,…);

我通常在单独的视图中编写javascript(仅使用js代码),并使用自己的操作结果来呈现它。通过这种方式,我可以利用服务器端的c#,如果需要,我可以使用模型,它将作为外部js文件包含在浏览器中(带有适当的缓存)。我使用的操作结果可在此处找到:

更新

您可以从您的操作中使用如下操作结果:

public ActionResult JsFile() {
    ViewData.Model = //Create model if you want one;
        return new JavascriptFileResult(true)
                   {
                       TempData = TempData,
                       ViewData = ViewData
                   };
}
然后将其视为普通视图(但仅在视图中编写javascript)。当然,您也可以使用任意数量的参数

您可以这样包含它:

<script type="text/javascript" src="<%=Url.Action("JsFile", "ControllerName")%>"></script>


这听起来是个不错的解决方案。但是在您发送的代码片段中,RegexReplace方法和JavaScriptCompressor类来自哪里?还有一个问题-我应该如何从我的操作中准确地使用JavascriptFileResult?@hiveticks,对不起,忘了提到这一点。它们都来自Yahoo.Yui.Compressor库,您可以在此处下载:。我将更新我的答案,向您展示如何使用操作结果。@HiveHicks,对我来说,效果非常好。如果您需要使用db中的值的动态css,也可以使用css执行同样的操作。+1 Mattias,我知道您“升级”这个已经有一段时间了。我只是想说,它真的很好用。自本初稿以来的任何意见/补充??我希望能够对其进行全面测试,并将其整合到一个生产应用程序中,有什么我应该知道的吗?Mattias,我还冒昧地用一个参数重载了JavascriptFileResult初始值设定项,以便为“视图”提供一个替代文件名。这意味着您可以使用字符串jsFilename参数调用jsFile操作,该参数调用相同名称的视图,而不是查找jsFile.as(pc)x。只是觉得你可能会感兴趣。我会发布我的更改,这样你当然可以知道我做了什么,我猜:)