HttpResponse.RemoveOutputCacheItem no funciona

Tengo un ActionResult que se almacena en caché.

[OutputCache(Duration = 3600, VaryByParam = "product_Id")]
public ActionResult ProductPreview(Guid product_Id)
{
     // just for testing the cache
     System.Threading.Thread.Sleep(4000);
     return PartialView("ProductPreview", _repository.CreateProductModel(product_Id));
}

Lo bueno es que el caché está funcionando. Después de la primera carga, el resultado se muestra sin ningún retraso de 4 segundos.

in embargo, necesito borrar el caché cuando se hayan realizado algunos cambios en ese producto.

Intenté borrar el caché haciendo lo siguiente:

public ActionResult RemoveCache()
{
    var url = Url.Action("ProductPreview", "Common");
    // also tried with parameter
    // var url = Url.Action("ProductPreview", "Common", new { @product_Id = "productId" });
    HttpResponse.RemoveOutputCacheItem(url);

    return RedirectToAction("Index");
}

Traté de llamar al método RemoveCache con ajax y actualización de página completa, y ninguno de ellos funciona.

¿Que puedo hacer? ¿Dónde está el problema

Respuestas a la pregunta(2)

Su respuesta a la pregunta