以外のビューを探し、他の基底クラスがあり、我々はコントローラのアクション以下したとします。は、ASP.NET MVC 3でSystem.Web.Mvc.ViewResultBase
ここpublic ActionResult Index() {
ViewBag.Message = "Foo Bar";
return View();
}
を、Index
方法がありますSystem.Web.Mvc.ViewResultBase
クラスを実装するViewResult
インスタンスを返します。 ViewResult
クラスのインスタンスが返されるため、システムは出力を生成するために適切なビューファイルを見つけようとします。見つからない場合は、例外がスローされます。
私の質問はこれです:
System.Web.Mvc.ViewResultBase
以外のビューを探し、他のベースクラスはありますか?
普通の英語では、結果をビューでレンダリングするために、コントローラーアクションからクラスSystem.Web.Mvc.ViewResultBase
を実装するクラスを返す必要がありますか?あなたは私はいわば、基本クラスをベースですActionResult
の種類を返すことを言っていますここで見るよう
EDITまた
、。最後を見ると、私はViewResult
のインスタンスを返しています。
フレームワークはそれをどのように処理しますか?すべてのコントローラーのアクション結果を即時にViewResultBase
クラスにキャストしようとしていますか?私は本当にこの部分について本当に興味があります。
お返事ありがとうございました。質問に私の編集を見ることができますか?私は本当にその部分についても興味があります。 – tugberk
いいえ、コントローラーのアクションの戻り値をキャストしません。単にその上で 'ExecuteResult'メソッドを呼び出します。これは 'ViewResultBase'実装でビューをレンダリングし、それをレスポンスに書き込みます。 – nemesv
Owwなので、 'ViewResultBase'クラスは通常、それ自身の必要性のために' ActionResult.ExecuteResult'メソッドをオーバーライドします。 – tugberk