28

Microsoft には、RAZOR 構文で ASP.Net を拡張する理由があるに違いないと思います。

Visual Studio の [新しい Web サイト プロジェクトの作成] ダイアログには、ASP.Net (Razor) を作成するための別のオプションがあります。Razorという用語に初めて出会ったのは、Asp.Net MVC に関する本を読んだときでした。ASP.Net に存在することを知りませんでした。

ここに画像の説明を入力

MVC 3 で導入された Razor 構文の目的を知っています。この質問をする前に、ASP.Net (Razor) のテスト プロジェクトを作成し、通常の ASP.Net Web フォームおよび ASP.Net とどのように異なるかを確認することにしました。 MVC。MVC にあるような Model/View/Controllers フォルダーは見つかりませんでした。

マスター ページの指定が異なっており、マスター ページの方がすっきりしていることがわかりました。<asp:ContentPlaceHolder />

しかし、私の質問は次のとおりです。

  • を使用していることに気付きましたが.cshtml、分離コードはもうありませんか?
  • ASP.Net (Razor) と ASP.Net MVC の類似点と相違点
  • ASP.Net MVC のように機能するように拡張できますか。たとえば、コントローラーを追加できますか?ビュー/モデル、カスタム ルーティングだと思いますか?
  • ASP.Net MVC があるのに、なぜこれが存在するのですか? これは、ASP.Net MVC への移行を躊躇させるのではないでしょうか?
  • また、ASP.Net MVC よりも ASP.Net+Razor を選択する理由は何ですか?

更新: 特に ASP.NET Web ページは、 HTML を既に知っているユーザーがサーバー処理をページに簡単に追加できるように設計されています。学生、愛好家、プログラミングに不慣れな一般の人にとっては良い選択です。また、ASP.NET 以外の Web テクノロジの経験がある開発者にも適しています。

ASP.NET Web ページの更新 ASP.NET Web ページは、PHP に沿った単純な Web 開発ストーリーを必要とする開発者を対象としています。Web ページ モデルでは、HTML ページを作成し、サーバー ベースのコードをページに追加して、マークアップのレンダリング方法を動的に制御します。Web ページは軽量フレームワークになるように特別に設計されており、学生や愛好家など、HTML は知っていてもプログラミングの経験があまりない人にとって、ASP.NET への最も簡単なエントリー ポイントです。また、PHP や同様のフレームワークを知っている Web 開発者が ASP.NET を使い始めるのにも適しています。

Asp.Net Web ページ

技術的なご意見が必要です。ありがとう。

4

6 に答える 6

21

これは素晴らしい質問です。まず、Razor の特徴を説明します。

Razor は、サーバー側のコードを解析し、Html を発行するエンジンです。ASP.NET Web フォームと同様に、おそらくより合理化された簡潔な構文のみが異なります。

Razor 対 Web フォーム サイドバー: ASP.NET Web フォームでは、サーバー コードの作成を開始するタイミングを '<%' で識別し、サーバー コードの作成が完了した時点で '%>' で識別する必要があります。私は ASP.NET Web フォームが大好きですが、それは扱いにくいものです。Razor では、サーバー コードの記述を開始するタイミングを「@」で識別し、次にサーバー タグ (「<」で始まる) の記述を開始するときに、サーバー コードが完了したことを「認識」します。これは、いくつかのサーバー コードが混在する html を記述するためのより簡潔な方法です。

ASP.NET Web ページは、単純な Web アプリケーションを作成するためのフレームワークです。ASP.NET MVC は、Model-View-Controller (MVC) パターンを使用して、Web フォームまたは Razor エンジンで Web アプリケーションを作成するためのフレームワークです。ASP.NET Web フォームは、Web フォーム レンダリング エンジンを使用して Web アプリケーションを作成するためのフレームワークです。

最終的な目標は、構築中のアプリケーションの洗練度に基づいて選択肢を提供することです。それぞれを理解することで、アプリケーションに適した選択を行うことができます。

追加のリンク:

于 2012-07-08T04:51:55.273 に答える
20

MVC パターンでは、M はモデル、C はコントローラー、V はビューです。したがって、当然のことながら、ASP.NET MVC モデルにはView Engineの概念があります。Razor は、提供されているビュー エンジンの 1 つにすぎません。すぐに使用できるもう 1 つの機能は、「古い」WebForms です (ちなみに、独自の View Engine を作成することもできます)。そのため、Razor には、Web フォーム ビュー エンジンの境界内にとどまるコード ビハインドの概念がありません。

だから、これがすべてを物語っています。Razor は MVC の View 部分を処理します (WebForms の代わりに使用する場合)。MやCとは関係ありません。

個人的には、ASP.NET MVC パターンを選択する場合、または MVC を使用せずにプレーンな Web フォームを使用する場合は、間違いなく Razor ビュー エンジンを使用します。それはまた、単に最近のものであるため、...単により良いものにしようとしています:-)

補足として、Razor パーサーは ASP.NET MVC の外部でも使用できます。MVC にも Web アセンブリにもまったく依存しないアセンブリに実装されています。詳細については、http ://www.west-wind.com/weblog/posts/2010/Dec/27/Hosting-the-Razor-Engine-for-Templating-in-NonWeb-Applications を参照してください。

于 2012-07-15T14:25:34.767 に答える
5

デフォルトではコード ビハインドはありませんが、カミソリ ファイルをカスタム クラスから簡単に継承させることができます。

@inherits Index

その後

public class Index : WebViewPage { }

(詳細はこちら: http://www.compiledthoughts.com/2011/01/aspnet-mvc3-creating-razor-view-engine.html )

これは、web を行う昔ながらの方法に似ており、より asp3 に似ています。mvc との違いは、mvc が実際のアプリケーションをサポートする巨大なフレームワークを提供することです (「マークアップ内のコード」だけでなく、ルーティング、コントローラー、およびアクションを使用します)。

本当にシンプルなものを作るために存在していると思いますが、実際にはわかりません...

最後に、私は常に asp.net mvc with razor を選択していました。

それが役に立てば幸い

于 2012-07-08T04:23:11.383 に答える
2

さて、あなたには2つのオプションがあります:

  1. Web フォームを使用する: すぐに使用できる、すぐに使用できるサーバー側コントロール (マークアップとビジネス コードの混合) を使用し、マスター ページとスキンを使用しますが、これらの便利さに伴う複雑さに直面します。:)

  2. MVC を使用する: または、より整理されたコードベースを提供する分離された設計モデルを使用します。最初にデザインのプロトタイプを作成するか、最初にビジネス コードを作成し、次に他の側面を構築することができます。非常に簡単です。デザイナーが自分の仕事をもっとコントロールできるようにして、デザイナーがやりたいことをすべてできるようにすることもできます。-> これは、コードをより細かく制御でき、コードをより簡潔でクリーンにするため、私の好みの選択です。

MVC パターンを選択した場合は、別のオプションが表示されます... ビュー エンジン

  1. 古い MVC ビュー エンジン: 悪くはありませんが、少し冗長です
  2. Razor Engine: #1 と同じことを行いますが、なぜ使用したくないのでしょうか?! MVC パターンの何も置き換えません。また、より簡潔で簡単です。MVC のパワーと Razor Engine のシンプルさの両方を備えています。Razor はよりスマートなマークアップ構文であり、"<%" を記述するよりも、ビジネスに集中するのに役立ちます。Razor 構文を使用することで得られるメリットは、MVC のすべての機能をすぐに利用できることです。

また、かみそり (C# または VB) 構文だけで単純な asp.net Web ページを作成することもできます。(ちょうどphpのように)

  • 私の個人的な選択は、MVC + Razor です。最高の組み合わせです!
于 2014-05-14T09:37:08.347 に答える
0
  1. MVC には「コード ビハインド」はありません。あなたが持っているのは、Razor と非 Razor の両方に存在するコントローラーです。
  2. これらは、2 つの異なるタイプのマークアップにすぎません。(次の回答を参照)
  3. これは MVC を置き換えるものではなく、単なる別のオプションです。従来のマークアップは非常に冗長です。Razor の構文は簡潔です。
于 2012-07-08T04:23:53.770 に答える
0

Web フォーム、MVC、Razor、WebPages など、マイクロソフトが提供するさまざまな混乱から抜け出すために、私は html-->javascript-->webapi を好みます。

于 2017-04-21T05:45:19.593 に答える