开发者

return a js file from asp.net mvc controller

Hi all fellow programmer

I'd like to have a separate js file for each MVC set I have in my application

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

And I'd like to include the js in the Index.aspx by

<script type="text/javascript" src="<%=UriHelper.GetBaseUrl()%>/Test/Js"></script>

Or to put it easie开发者_如何学Cr, when I call http://localhost/Test/Js in the browser, it will show me the script.js file

How to write the Action in the Controller? I know that this must be done with return File method, but I haven't successfully create the method :(


How about:

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

I will add that you really should have your scripts under your Content folder as MVC is all about convention above configuration and by trying to place your scripts with your views you are breaking convention.


Two options:

  • Return the javascript as a string using the Javascript ActionResult
  • Return the javascript file as a downloadable file using the File download ActionResult

HTH.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜