如何摆脱强制添加下划线与时间戳
问题描述:
我正在与MVC5的项目工作,并遇到了一个MVC的问题,试图“帮助”我,我想。我正在做的是试图通过提取他们的javascript来清理视图,而无需摆弄bundle配置。如何摆脱强制添加下划线与时间戳
乱包式文件夹中的通用加载将是一个选项,但我宁愿避免这种情况。
因此,这里是我的代码,这是工作:
public static string GetControllerName(this ControllerBase controller)
{
var name = controller.GetType().Name;
if (name.ToLower().EndsWith("controller"))
return name.Substring(0, name.Length - 10);
return name;
}
public static IHtmlString LoadViewScripts(this HtmlHelper helper)
{
var view = helper.ViewContext.View as RazorView;
if (view != null && !string.IsNullOrEmpty(view.ViewPath))
{
var controllerName = helper.ViewContext.Controller.GetControllerName();
var vPath = string.Format("~/Scripts/View/{0}/{1}.js", controllerName, Path.GetFileName(view.ViewPath));
var realPath = helper.ViewContext.HttpContext.Server.MapPath(vPath);
if (File.Exists(realPath))
{
var urlPath = UrlHelper.GenerateContentUrl(vPath, helper.ViewContext.HttpContext);
var lwrite = File.GetLastWriteTime(realPath);
return new HtmlString(string.Format("<script type='text/javascript' language='javascript' src='{0}?v={1}'></script>", urlPath, lwrite.Ticks));
}
}
return new HtmlString(string.Empty);
}
结果我传递到src属性:
http://localhost/AppName/Scripts/View/Map/SelectSite.cshtml.js?v=635569414679160391
什么我得到(火狐的网络视图):
http://localhost/AppName/Scripts/View/Map/SelectSite.cshtml.js?v=635569414679160391&_=1421342715176
我期待什么(网络视图的Firefox):
http://localhost/AppName/Scripts/View/Map/SelectSite.cshtml.js?v=635569414679160391
有没有人知道如何停止MVC从“帮助”缓存/刷新在这种特殊情况下的东西?
答
好的。所以原来有两个原因为什么它不为我工作。
-
禁用默认启用的缓存的kendo属性不在api中。像这样调用它解决了我的窗口问题。
content: { url: targetUrlSiteSelect, cache : true }
我的附加脚本标记仍包含下划线元素。后来我发现在这里包含注释中该解决方案: jQuery version 1.5 - ajax - <script> tag timestamp problem
评论布莱斯:
$.ajaxPrefilter('script', function(options) { options.cache = true; });
你也许经过HTML到jQuery的通过AJAX?我知道jQuery补充说,以防止缓存。 – 2015-01-15 17:47:34
将lwrite.Ticks.ToString()。SubString(0,18)的工作来切断下划线和后面的任何东西? – dkiefer 2015-01-15 19:09:51
@MikeMcCaughan不直接。这个方法在@ Html.LoadViewScripts()的相应视图中被调用。视图本身是通过ajax加载的(在这里使用kendoUI窗口,没有关于缓存的属性),并且也包含一个下划线,这也不是我的意图。 – Dbl 2015-01-16 09:59:12