2011-01-14 12 views
3

ここで繰り返しを避けようとしています。私はベースクラスのコントローラで、私は変更することはできませんアクションがあります。私はいくつかのチェックを行い、基本クラスのアクションを呼び出し、レンダリングする前に何らかの方法で結果を変更するように私のアクションをしたいと思います。しかし、私がする必要があるのは、ViewModelのいくつかのプロパティを変更することです。基本クラスはActionResultを返します。私はViewModelActionResultから得る方法がないので、カスタムメソッドを記述する必要があります。そのほとんどは、基本クラスの動作を模倣しています。私はこれをしないことを強く望んでいます。助言がありますか?ActionResultからViewModelを取得できますか?

答えて

8

これは、ActionResultがかなり高いレベルの基本クラスであるからです。 ViewResultなど、適切なサブタイプにキャストしてみてください。

クイックサンプルコード:働くかもしれない

public ActionResult WrapperAction() 
    { 
     // do your initial stuff 


     // call your base controller action and cast the result 
     // it would be safer to test for various result types and handle accordingly 
     ViewResult result = (ViewResult)base.SomeAction(); 

     object model = result.ViewData.Model; 

     // do something with the model 

     return result; 
    } 
+0

おかげで、:) – Samo

関連する問題