在MVC中包含assembly中的javascript

Include javascript from assembly in MVC

本文关键字:中的 javascript assembly 包含 MVC      更新时间:2023-09-26

是否有任何方法,我可以包括一个javascript文件,是在我的视图MVC 3汇编的嵌入式资源?

我试图创建一个Action,从程序集获取嵌入的资源,然后返回一个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")"/>

有人知道怎么做吗?

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);

如果只在服务器上呈现,请尝试返回new ContentResult(jsContent)