如何从basecontroller中覆盖OutputCache?

时间:2010-07-30 11:10:17

标签: caching

我有一个基本控制器,可确保页面过期,因此后退按钮将显示网页已过期。这样做是这样的: [OutputCache(NoStore = true,Duration = 0,VaryByParam =“none”)]

但是我希望有一个默认的行为,我可以从继承自base的控制器上的一个动作导航回来。似乎无论OutputCache属性设置为什么,它仍然显示“网页已过期”。现在我有什么想法可以让它缓存这个动作吗?

2 个答案:

答案 0 :(得分:1)

在不使用outputcache属性的情况下通过handeling找到解决方法

HttpContext.Current.Response.Cache.SetNoStore();

这份工作......

答案 1 :(得分:0)

显然,您可以在派生类的方法上设置[OutputCache]属性,这将覆盖基类的属性。

@FXML
protected void mHome(ActionEvent event) throws IOException, URISyntaxException {

    try {                    
        URL url = getClass().getResource("view/home.fxml");
        FXMLLoader fxmlLoader = new FXMLLoader();
        fxmlLoader.setLocation(url);
        fxmlLoader.setBuilderFactory(new JavaFXBuilderFactory());
        AnchorPane page = (AnchorPane) fxmlLoader.load(url.openStream()); 

        aContent.getChildren().clear();
        aContent.getChildren().add(page);
    } 
    catch (IOException e) {
        e.printStackTrace();
    }

}

从测试开始,这似乎有效。