2011-06-17 32 views
2

我對MVC有點新,所以如果我在這裏問一些奇怪的東西,我很抱歉。 基本上我試圖修改現有的電子商務MVC應用程序,但以可插入的方式,這意味着我不想觸摸現有的代碼,而是引用應用程序的相關程序集並在應用程序中使用所有擴展點。MVC - 如何在控制器操作返回瀏覽器之前更改視圖以便更改視圖?

有一個CategoryView顯示給定類別中的所有產品。我想以某種方式掛鉤到控制器或模型或視圖中,以便更改此模型中的某些數據以用於此CategoryView

我能想到的唯一方法就是改變視圖的路由並編寫自己的控制器和操作。在我的動作中,我可以調用原始控制器和操作來獲取ViewResult並在將其返回到ViewEngine之前對其進行處理。 在它的表面上,這似乎是錯誤的,而且我不確定我是否可以從我的控制器的操作中調用另一個控制器的動作。

所以我想知道從MVC的角度來看,是否有辦法掛鉤到CategoryView控制器,模型或動作,以便更改視圖中顯示的數據?我從MVC的角度來說,否則在應用程序中沒有預定義的自定義擴展點來做到這一點。

請指教。

回答

1

看一看的ActionFilterAttribute。這允許您在調用操作之前或之後以及執行操作返回的ActionResult之前和之後掛鉤執行代碼。

該類的每個方法都接收一個上下文對象。上下文對象具有可以操作的Result屬性。

相關問題