Кэш вывода не удаляет mvc с varbyparam для обязательных параметров - PullRequest
0 голосов
/ 06 июля 2019

У меня есть следующий метод действия

   public async System.Threading.Tasks.Task<ActionResult> selectaddetails(int adid=0,int lid = 0, string catm = "",int catid=0, string searchTxt = "",string code="") 
      {...}

Я кеширую его с этим атрибутом

   [OutputCache(Duration = 60 * 60 * 24 * 100, VaryByParam = "adid")]

Поэтому, когда создается запись, параметры для selectaddetails заполняются и перенаправляются на это действиеselectaddetails, до этого я сохраняю URL с параметрами в файле xml.тот же URL-адрес, который используется для кэширования страницы с параметрами.

И я удаляю ссылку на выходной кэш,

 XmlDocument doc = new XmlDocument();
                doc.Load(Server.MapPath("../forDelete.xml"));

                XmlElement root = doc.DocumentElement;
                XmlNodeList nl = root.ChildNodes;
                XmlNode x = nl.Cast<XmlNode>().Where(w => w.Attributes["adid"].InnerText == adid.ToString()).FirstOrDefault();
                if (x != null)
                {
                    string url = HttpUtility.UrlDecode(x.Attributes["url"].InnerText);
                    HttpResponse.RemoveOutputCacheItem("/"+url);
                }

URL-адрес, используемый при удалении кэша, совпадает с URL-адресом, когдадействие первое нажатие (и сохранить кэш вывода).Но кеш для URL не удаляется.Есть ли что-то не так, что я делаю.

Я использую varbyparapara для обязательного параметра, который является adid и не используется для параметра option.Будем благодарны за любую помощь.

примечание: я не хочу использовать varbyparam для необязательных параметров, потому что необязательные параметры могут быть любыми.

Спасибо

...