У меня есть следующий метод действия
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 для необязательных параметров, потому что необязательные параметры могут быть любыми.
Спасибо