Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 防止缓存的url.content的razor扩展方法_C#_Javascript_Css_Asp.net Mvc_Razor - Fatal编程技术网

C# 防止缓存的url.content的razor扩展方法

C# 防止缓存的url.content的razor扩展方法,c#,javascript,css,asp.net-mvc,razor,C#,Javascript,Css,Asp.net Mvc,Razor,我想覆盖Url.Content,将查询字符串参数附加到Url.Content上的结果字符串 原因是,我开发了一个web应用程序,每次发布时,用户都必须清除缓存以获得新的css和js。解决方法是在querystring中附加一个版本号,以强制加载新版本 工作解决办法如下: @{ var version = "?v=" + ViewBag.VersionNumber; } <head> <link href="@Url.Content("~/ux/css/base.css")@ve

我想覆盖Url.Content,将查询字符串参数附加到Url.Content上的结果字符串

原因是,我开发了一个web应用程序,每次发布时,用户都必须清除缓存以获得新的css和js。解决方法是在querystring中附加一个版本号,以强制加载新版本

工作解决办法如下:

@{ var version = "?v=" + ViewBag.VersionNumber; }
<head>
<link href="@Url.Content("~/ux/css/base.css")@version" rel="stylesheet" type="text/css" />
</head>
@{var version=“?v=“+ViewBag.VersionNumber;”
版本在配置文件中设置,因此每个版本都会更新版本。我希望这是更自动的,因为当前任何时候添加新的css引用时,我们必须记住向字符串添加@version。扩展方法返回已经附加了版本号的路径将是完美的


另外,如果有人知道我可以通过TFS签入或编译自动更改版本号,这也会非常有用。

您可以这样做:

public static string VersionedContent(this UrlHelper urlHelper, string contentPath)
{
    string result = urlHelper.Content(contentPath);
    var versionService = Engine.IocService.GetInstance<IVersionService>();
    string tag = versionService.GetVersionTag();
    if (result.Contains('?'))
    {
        result += "&v="+tag;
    }
    else
    {
        result += "?v="+tag;
    }
    return result;
}
public class VersionService : IVersionService
{
    string _versionTag;
    public VersionService()
    {
        _versionTag = Assembly.GetExecutingAssembly().GetName().Version.ToString();
        _versionTag = _versionTag.Replace('.', '-');
    }
    #region IVersionedContentService Members

    public string GetVersionTag()
    {
        return _versionTag;
    }

    #endregion
}
你可能想看看

*编辑* 自动驾驶。使用TFS生成编号,请查看:

乍一看,这盘磁带看起来非常有用,我肯定会进一步研究