2009-05-12 7 views
2

私はビューにいくつかのデータを渡したいというコントローラを持っています。コントローラから、MVCの強く型付けされたビューに必要なparamを適用しますか?

ビューが強くように型付けされています。私は、コントローラに次のように呼び出したときに今

System.Web.Mvc.ViewPage<SomeObject> 

return View("SomeAction", someObject); 

私はそれが私が「SomeObjectの」に合格する必要があることを強制します。

例: 、予想オブジェクトは常にビューに渡す必要があり

View("SomeAction"); 

何で:私は、次のは失敗とをコンパイルしないようにしたいです。

これが可能ですか、それとも完全にベースから外れていますか?

答えて

1

私はちょうどこのような場合のためにテストを書くでしょうし、残りの部分を気にしないでください:

var actual = controllerUnderTest.Action() as ViewResult; 
Assert.IsNotNull(actual.ViewData.Model); 
Assert.IsInstanceOfType(actual.ViewData.Model, typeof(SomeObject)); 
+0

私は、コンパイラはそれをピックアップし、可能性も他の人を助けるためにインテリセンスの代わりに、テストのために待っていることを好むだろうエラーを見つけるために実行するケース。それが私の質問から得ようとしていることの要点です。 – Kelsey

+3

コントローラがSystem.Web.Mvc.Controllerから派生している限り、コンパイル時には、開発者がController.View( "abc")メソッドを呼び出してモデルを渡すことができなくなる可能性があります。あなたが代わりにできることは、ActionResultの代わりにCustomViewResultを返すことです。このCustomViewResultは、ViewResultから派生し、定義したパブリックコンストラクタのモデルを「強制」することができます。 –

関連する問題