web-dev-qa-db-ja.com

Asp.netコア2のビューとページの違いは何ですか?

私はAsp.netコア2の新機能です。Asp.netコア2の新しい機能の1つはページです。しかし、私はそれを理解することはできません

  1. ページとビューの違いは何ですか?
  2. ページとビューの利点は何ですか?
  3. どのような場合にページを使用する必要がありますか?
  4. 両方を同時に使用できますか?
10
topcool

本当に、あなたの質問は、RazorPageと従来のMVCの違いは何ですか。どちらもRazorビューを利用しています。かみそりのページは自己完結型(一種)です。 Webフォームのようなコードビハインドがあるため、技術的にはcshtmlファイルとcshtml.csファイルがあり、後者はコントローラーとモデルの両方として機能します。一方、従来のMVCでは、FooControllerFooViewModel、およびFoo.cshtmlが別々になります。いくつかのわずかな機能の違い(RazorPagesでOnGetAsyncOnPostAsyncなどの規則ベースの「アクション」を使用する必要があるなど)を除けば、それはほとんどそれです。

私が見ているように、Razor Pagesの主な利点は、その自己完結型の性質です。特定の機能に関するすべてのコードは、基本的にすべて1か所にあります。ただし、これの欠点は、コードの再利用が困難になるか、少なくとも一部の場所では直感的ではなくなる可能性があることです。個人的には、MVCによって提供される責任の明確な分割は、より理想的なアプローチであり、「魔法」も少ないと思います。 Razor Pagesのマーケティングのタッチポイントの1つは、それがばかげて簡単なことです。それは本当かもしれませんが、Web開発者が実際に認識すべきことを抽象化することによる「容易さ」のおかげであり、それは危険な場合があります。何かがどのように機能するかを実際に理解していないと、正しいことをしているのかどうかわかりません。

私は偏見がありますが、「Razor Pagesはいつ使用すべきですか?」と正直に答えると、決して言いません。責任の混合、すべての「魔法」などは好きではありません。それらが導入されて以来、ここでのASP.NET Coreの質問の数は急増し、RazorPagesの質問の大部分は明白なものまたはMVCでは最も直感的ではありません。そうは言っても、がそれらを使用する場合、CRUDタイプのもので最も意味があります-多くの機能を持たないものとかなり単純で反復的です。

最後に、はい、RazorPagesとMVCを自由に組み合わせることができます。ただし、すべての人に明らかなわけではないため、注意する必要があります。RazorPagesは、RazorPagesとして使用された場合にのみRazorPagesとして機能します。つまり、コードビハインド(Razorページ)を使用してビューを作成し、そのビューをMVCアクション、パーシャルなどからの戻り値として使用する場合、コードビハインドは実際には使用されず、 「表示」部分。実際には、より正確に言うと、ビューはコードビハインドのPageをモデルとして使用するため、「使用」されますが、一般的な意味でビューのモデルを提供するためにのみ使用されます。ただし、これは実際には「アクティブ」ではありません。ページアクションがヒットしない、物事が適切に初期化されないなどの意味です。

16
Chris Pratt