3

ここで繰り返しを避けようとしています。変更が許可されていない基本クラスのコントローラーにアクションがあります。アクションでいくつかのチェックを行い、基本クラスのアクションを呼び出し、レンダリングの前に何らかの方法で結果を変更したいと考えています。しかし、私がしなければならないことの一部には、 のいくつかのプロパティを変更することが含まれてViewModelおり、基本クラスは を返しますActionResultViewModelからを取得する方法が見当たらないActionResultので、カスタム メソッドを作成する必要があるかもしれません。そのほとんどは、基本クラスが行っていることを模倣するだけです。私はこれをしないことを強く望みます。助言がありますか?

4

1 に答える 1

9

これ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;
    }
于 2011-01-14T21:34:16.387 に答える