Включить JavaScript из сборки в MVC - PullRequest
0 голосов
/ 21 апреля 2011

Можно ли как-нибудь включить файл javascript, который является встроенным ресурсом сборки, в мои Views для MVC 3?

Я попытался создать действие, которое получает встроенный ресурс из сборкии затем возвращает FileStreamResult, например, так ...

 public FileStreamResult Scripts()
 {
    System.Reflection.Assembly myassembly;
    myassembly = System.Reflection.Assembly.GetExecutingAssembly();
    System.IO.Stream file =
       myassembly.GetManifestResourceStream("Testing.testscript.js");
    return File(file, "application/x-javascript");
 }

Затем в моем главном представлении:

  <script type="text/javascript">

    @Html.RenderAction("Scripts")

  </script>

Это не кажется слишком работать.лучше просто получить встроенный ресурс в виде ссылки, а затем использовать его в качестве значения моего src для скрипта.Так что-то вроде:

<script src="@Html.GetEmbeddedResourceAsLink("Testing.testscript.js")"/>

Кто-нибудь знает как?

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

GetWebResourceUrl может быть полезен здесь: http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.getwebresourceurl.aspx

Пример кода на этой странице MSDN предназначен для WebForms, но я думаю, что может работать следующее:

string rsname = "MyAssembly.my_script.js";

string url = ((Page)HttpContext.CurrentHandler)
    .ClientScript.GetWebResourceUrl(this.GetType(), rsname);
0 голосов
/ 21 апреля 2011

Если оно предназначено только для отображения на сервере, попробуйте вернуть new ContentResult(jsContent).

...