вернуть файл js из контроллера asp.net mvc - PullRequest
6 голосов
/ 03 апреля 2010

Привет всем коллегам-программистам

Я хотел бы иметь отдельный файл js для каждого набора MVC, который есть в моем приложении

/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

Как записать действие в контроллер? Я знаю, что это должно быть сделано с помощью метода возврата файла, но я не смог создать метод: (

Ответы [ 2 ]

15 голосов
/ 03 апреля 2010

Как насчет:

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

Я добавлю, что вы действительно должны иметь свои скрипты в папке Content, так как MVC - это соглашение по сравнению с настройкой, и, пытаясь разместить свои скрипты в соответствии с вашими представлениями, вы нарушаете соглашение.

1 голос
/ 03 апреля 2010

Два варианта:

  • Возвращает JavaScript как строку, используя Javascript ActionResult.
  • Возврат файла javascript в виде загружаемого файла с помощью File download ActionResult

НТН.

...