Я пытаюсь использовать строку запроса в своих файлах .js, чтобы они перезагружались каждый раз, когда я вношу изменения. Я попытался поместить строку запроса в файлы как часть ScriptBundle. Когда я нажимаю на пункт меню, в котором есть функция в .js, который должен был быть загружен через Bundle, функция не обнаруживается.
public static void RegisterBundles([NotNull] BundleCollection bundles)
{
var JAVASCRIPT_CSS_VERSION = System.Web.Configuration.WebConfigurationManager.AppSettings["JAVASCRIPT_CSS_VERSION"];
BundleTable.EnableOptimizations = true;
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-2.2.4.*"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery.browser.js?v = " + JAVASCRIPT_CSS_VERSION,
"~/Scripts/jquery-ui-1.8.24.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate.js?v = " + JAVASCRIPT_CSS_VERSION));
// Use the development version of Modernizr to develop with and learn from. Then, when you're
// ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new ScriptBundle("~/bundles/CrossMedia").Include(
"~/Scripts/CMApp/CrossMediaAjax.js?v = " + JAVASCRIPT_CSS_VERSION,
"~/Scripts/CMApp/CrossMedia.js?v = " + JAVASCRIPT_CSS_VERSION,
"~/Scripts/CMApp/WebMobile.js?v = " + JAVASCRIPT_CSS_VERSION,
"~/Scripts/CMApp/SocialMedia.js?v = " + JAVASCRIPT_CSS_VERSION,
"~/Scripts/CMApp/ENewsletter.js?v = " + JAVASCRIPT_CSS_VERSION,
"~/Scripts/CMApp/AppData.js?v = " + JAVASCRIPT_CSS_VERSION,
"~/Scripts/CMApp/PrintSummary.js?v = " + JAVASCRIPT_CSS_VERSION,
"~/Scripts/CMApp/Approvals.js?v = " + JAVASCRIPT_CSS_VERSION));
bundles.Add(new ScriptBundle("~/bundles/brandview").Include(
"~/Scripts/Brandview/Brandview.js?v = " + JAVASCRIPT_CSS_VERSION,
"~/Scripts/Brandview/SelectTemplate.js?v = " + JAVASCRIPT_CSS_VERSION,
"~/Scripts/Brandview/DataEntry.js?v = " + JAVASCRIPT_CSS_VERSION,
// "~/Scripts/Brandview/Preview.js",
// "~/Scripts/Brandview/ChartCtrl.js",
"~/Scripts/Brandview/Submit.js?v = " + JAVASCRIPT_CSS_VERSION
));}
Я знаю, что сделал это неправильно, потому что это не работает. В других случаях, когда у меня работает QueryString с версией, я просто использую его, как показано ниже.
<script src = "@Url.Content("~/Scripts/ABC/gladiola.js?v = " + JAVASCRIPT_CSS_VERSION)" type = "text/javascript"></script>
Любая помощь будет оценена.
Спасибо Боб



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я продолжил исследования и нашел эту статью, изменил код в соответствии со своими потребностями, и это решило мою проблему.
Очистка кеша MVC с помощью строки запроса
Вот фрагмент моего кода сейчас
bundles.Add(new ScriptBundle("~/bundles/brandview").Include(
"~/Scripts/Brandview/Brandview.js",
"~/Scripts/Brandview/SelectTemplate.js",
"~/Scripts/Brandview/DataEntry.js",
// "~/Scripts/Brandview/Preview.js",
// "~/Scripts/Brandview/ChartCtrl.js",
"~/Scripts/Brandview/Submit.js").WithVersionNumber());
}
private static Bundle WithVersionNumber(this Bundle sb)
{
sb.Transforms.Add(new LastModifiedBundleTransform());
return sb;
}
private class LastModifiedBundleTransform : IBundleTransform
{
public void Process(BundleContext context, BundleResponse response)
{
var JAVASCRIPT_CSS_VERSION = System.Web.Configuration.WebConfigurationManager.AppSettings["JAVASCRIPT_CSS_VERSION"];
foreach (var file in response.Files)
{
file.IncludedVirtualPath = string.Concat(file.IncludedVirtualPath, "?v = ", JAVASCRIPT_CSS_VERSION);
}
}
}