假设我有一个位于C:\foo\bar.js
的文件,我希望将此文件包含在ASP.NET MVC网站中,该网站显然托管在同一台计算机上。
这不起作用:
<script src="C:\foo\bar.js"></script>
这两点都没有:
<script src="file:///C:/foo/bar.js"></script>
以上两行没有意义,因为它们会查看客户端的文件夹,而不是服务器的文件夹。
那么如何从ASP.NET MVC Controller(在控制器中,我有本地物理文件的路径的字符串值,即C:\foo\bar.js
)向View提供此文件?也许有HttpHandler的东西?
答案 0 :(得分:3)
注意:此解决方案假设js文件不是Web应用程序的一部分。如果是,您可能应该使用Url.Content或ResolveClientUrl ..
您应该能够在脚本代码中链接到控制器操作Url:
<script src="/ControllerName/GetJavascriptFile"></script>
......并采取类似::
的行动public ActionResult GetJavascriptFile() {
string mp = @"C:\foo\bar.js";
return File(mp, "text/javascript");
}
http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.file(VS.90).aspx
答案 1 :(得分:1)
我一直这样做的方式是 - 假设您有一个名为Scripts
的文件夹离开根(因此,与Controllers
,Models
并行等)并且您将JavaScript文件存储在其中,您可以使用:
<script
src="<%=Url.Content("~/Scripts/jQuery-1.3.2.js")%>"
type="text/javascript">
</script>
(分成多行以便于阅读)
这假设您的问题是如何链接到.js
包含文件的位置,但类似的技巧可以应用于任何内容文件(即插件安装程序或诸如此类)