Asp.net MVCは、コードビハインドを使用しません。しかし。あなたのページは伝統的なASPページではないと考えてはいけません。ほとんどの処理(コードビハインドのように)はコントローラのアクション内で行われます。 ASPXページでは、処理の結果がほとんど表示されません(アクション結果がViewResult
またはPartialViewResult
の場合)。
コントローラのアクション「はです」というのは、多くのASPXファイルのコードの後ろにあります。
もちろんこれは非常に単純化されていますが、このように理解できます。
補足説明
あなたは、ASPXファイルでC#のコードを書くことがASPコードを書くと非常に似ていると主張しているが、私はあなたがしばらくの間それを考えさせる許すことができます。 Asp.netのWebフォームでは、あなたは基本的に何をしたか
<asp:Repeater ... />
を追加するたびに、いくつかの追加機能を備えたさまざまな形でforeach
声明でした。 Asp.net MVCでは、あなたが書いたものは実際のforeach
ステートメントであり、必要な追加機能があります。あなただけの追加機能なしのアイテムをレンダリングするよ時間の大半はそうforeach
は次のようになります。HTMLは、各項目ごとにレンダリングするので
は
単純豊かなサーバ側制御よりも速く
- 、約になります。それは(状態のように)、インスタンス化を実行して保存する必要があるだけのシンプルな言語構造ではなく、いくつかのサーバー側のコントロールだから、
- 少ないリソース空腹のリピーターアイテムのテンプレートと同じ
なぜすることができますコントローラのアクションは、多くのASPXのコードビハインドですか?
私たちも何このコードがないことはそれほど単純なくらいにつながる両方の状態を処理する必要がありますいくつかの複雑なページライフサイクルの処理よりもあることは言うまでもありませんコード
public ActionResult Index()
{
var data = /* get some data */
if (data.Count > 0)
{
/* first ASPX */
return View("DisplayItems", data);
}
else
{
/* second ASPX */
result View("DisplayEmpty");
}
}
のこの種を持っている可能性があるのですべてのHTMLを持つより複雑なASPXファイル
In Asp。ネットMVCコードは非常にシンプル/ベーシックです。なぜなら、それぞれが1つのステート/状況/目的を提供するだけなので、実行する必要があるだけで、ビューもずっと簡単ですからです。 Asp.net WebFormsのようなマルチファイリングはありません。
.aspxページでHTMLとコードを維持するのはどうでしょうか?私のプロジェクトは、頻繁なUIと新しい機能の追加/変更を受けます。 HTMLとインラインコードはすべて結びついているので、変更を行うことは困難です。このようなシナリオでは、MVCに行くべきでしょうか? – Derin
@Derin:Asp.net WebFormsアプリケーションは、C#コードの多くをカプセル化するASPXファイルで構成されていると言っていますか?そうだとしたら、いいえ。コントローラーアクション**は、ビューファイル**に含めることはできません。コントローラは別のクラスです。私はビュー内でそれらを定義しようとしたことはありませんが、ビューが通常はプリコンパイルされず、コントローラクラスが利用できないので、動作しないはずです。 –