ASP.NET MVC5:如何将 AssemblyVersion 参数传递给 requirejs urlArgs?

ASP.NET MVC5: how to pass AssemblyVersion parameter to requirejs urlArgs?

就这么简单:在ASP.NET MVC5视图中,如何将参数传递给requirejs urlArgs?我想阅读这样的汇编版本...

var assemblyVersion = System.Reflection.Assembly.GetExecutingAssembly()
                                                .GetName()
                                                .Version
                                                .ToString();

... 并将其传递给 requirejs 以破坏缓存并加载最新版本。 尝试了各种方法,但仍然无法从 Razor 标记正确访问 requirejs 配置:(

您可以在 cshtml 中保留一个隐藏的输入元素并使用

设置它的值
@System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

然后在 js 中

require.config({
    urlArgs: "bust=" + document.getElementById('yourinputelementid').value
});

我找到的另一个解决方案:

example.cshtml

@{
  var assemblyVersion = typeof(SimpleMessages.Web.MvcApplication).Assembly
                                                                 .GetName()
                                                                 .Version
                                                                 .ToString();
}

@section scripts {
  <script>
      require.config({ urlArgs: "v=@assemblyVersion" });
      @Html.RequireJs("/Scripts/main.js", "/Scripts/My/chat-ko.js");
  </script>
}

这样 DOM 中就什么都没有了,并且动态正确地创建了程序集版本。

HTH