2017-04-17 16 views
0

私はASP.Netビューが自分自身の内側にいくつかの.NETコードを含めることができ、に送信されたHTMLファイルに(かみそりまたはASPXなど)のビューエンジンで解析されたファイル(のような.aspxのか.cshtml)であると考え、最近までクライアントのブラウザ。後で、これらのビューが実際にSystem.Web.Mvc.WebViewPageクラスから派生したクラスに変換されていることがわかりました。これとは別に、私はいくつかの人々がクラスそのものとしてビューを参照していることに気づいた。だから私の質問はWebViewPageクラスはASP.Net MVCのhtmlにどのように変換されますか?

  1. ビューが解析されると、このクラスはどのようにしてhtmlドキュメントをレンダリングするのですか?
  2. それは、ASP.NETのビューが自身または彼らはより多くのビューエンジンは、実際のクラスを形成してベースとなるスクリプトのいくつかの種類のようであるクラスであると言うことは公正ですか?

答えて

1

プロセスがどのようにかみそりビューで動作するかの良い説明はhereです。

は、基本的に、この場合cshtmlのビューファイルは、最初にその特定のページの最初の要求にC#コードファイルに変換されます。作成されたクラスは、基本的にcshtmlのすべての非C#部分をC#に変換します。ほとんどの場合、ビューのExecuteメソッドで応答としてHTMLリテラルを書き出すだけです。

#lineディレクティブを使用して元のcsprojファイルの行をマークしているため、デバッガを使用して元のコードをステップ実行して例外がどこにスローされたかを確認できます。

ビューは、基本的にはクラスです(少なくとも最初にアクセスされた後はクラスになります)。レンダリングは、ビューのExecuteメソッド内のHTMLリテラルをレスポンスストリームに書き込むことによって発生します。

関連する問題