从asp.net mvc控制器返回一个js文件

时间:2010-04-03 17:23:05

标签: asp.net-mvc file controller return

大家都是程序员

我想为我的应用程序中的每个MVC设置一个单独的js文件

/Controllers/
    -TestController.cs
/Models/
/Views/
    /Test/
        -Index.aspx
        -script.js

我想通过

将js包含在Index.aspx中
<script type="text/javascript" src="<%=UriHelper.GetBaseUrl()%>/Test/Js"></script>

或者为了方便起见,当我在浏览器中调用http://localhost/Test/Js时,它会显示script.js文件

如何在Controller中编写Action?我知道这必须使用返回File方法完成,但我还没有成功创建方法:(

2 个答案:

答案 0 :(得分:15)

怎么样:

    public FileContentResult Js()
    {
        return File(System.IO.File.ReadAllBytes(Server.MapPath("/Test/script.js")), "text/javascript");
    }

我将补充一点,你真的应该把你的脚本放在你的Content文件夹下,因为MVC完全是关于上面的约定配置,并且试图用你的视图放置脚本,这是你违反惯例。

答案 1 :(得分:1)

两个选项:

  • 使用Javascript ActionResult
  • 将javascript作为字符串返回
  • 使用文件下载ActionResult
  • 将javascript文件作为可下载文件返回

HTH。