この記事では、ASP.NET MVC モデル、ビュー、コントロールの概要を説明します。つまり、ASP.NET MVC の「M」、「V」、「C」について説明します。
この記事を読むと、ASP.NET MVC のさまざまな部分がどのように連携して機能するかを理解できるはずです。また、ASP.NET MVC プログラムのアーキテクチャが ASP.NET Web フォーム プログラムや ASP プログラムとどのように異なるのかも理解できるはずです。
サンプル ASP.NET MVC アプリケーション
ASP.NET MVC Web アプリケーションを作成するためのデフォルトの Visual Studio テンプレートには、ASP.NET MVC Web アプリケーションのさまざまな部分を理解するために使用できる、非常に単純なサンプル アプリケーションが含まれています。このチュートリアルでは、この簡単なプログラムを使用してみましょう。
Visual Studio 2008 を実行し、[ファイル]、[新規] の順に選択し (図 1 を参照)、MVC テンプレートを使用して ASP.NET MVC プログラムを作成します。 [新しいプロジェクト] ダイアログ ボックスの [プロジェクトの種類 (P)] で希望のプログラミング言語 (Visual Basic または C#) を選択し、[テンプレート] で [ASP.NET MVC Web アプリケーション] を選択します。 「OK」ボタンをクリックします。
新しい ASP.NET MVC プログラムを作成すると、[単体テスト プロジェクトの作成] ダイアログ ボックスが表示されます (図 2 を参照)。このダイアログ ボックスでは、テスト用の別の ASP がソリューション内に作成されます。 「いいえ、単体テストプロジェクトを作成しません」オプションを選択し、「OK」ボタンをクリックします。
図2 単体テストの作成ダイアログボックス
ASP.NET MVCプログラムが作成されます。ソリューション エクスプローラー ウィンドウにいくつかのフォルダーとファイルが表示されます。特に、Models、Views、Controllers という名前の 3 つのフォルダーが表示されます。名前が示すように、これら 3 つのフォルダーには、モデル、ビュー、コントローラーを実装するファイルが含まれています。
Controllersフォルダーを展開すると、AccountController.csという名前のファイルとHomeControllers.csという名前のファイルが表示されます。 Views フォルダーを展開すると、Account、Home、Shared という 3 つのサブフォルダーが表示されます。ホーム フォルダーを展開すると、About.aspx と Index.aspx という 2 つのファイルが表示されます (図 3 を参照)。これらのファイルは、デフォルトの ASP.NET MVC テンプレートを含むサンプル アプリケーションを構成します。
「デバッグ」「デバッグ開始」を選択してサンプルプログラムを実行します。または、F5 キーを押すこともできます。
ASP.NET プログラムを初めて実行するときは、図 4 に示すダイアログ ボックスが表示されます。デバッグを開始することをお勧めします。 「OK」ボタンをクリックするとプログラムが実行されます。
図 4 [デバッグが開始されていません] ダイアログ
ASP.NET MVC プログラムを実行する場合、Visual Studio はブラウザーでプログラムを実行します。サンプルプログラムには Index ページと About ページの 2 ページが含まれています。プログラムを初めて起動すると、[インデックス] ページが表示されます (図 5 を参照)。プログラムの右上隅にあるメニュー リンクをクリックすると、[バージョン情報] ページに移動できます。
ブラウザのアドレス バーの URL に注目してください。[バージョン情報] メニュー リンクをクリックすると、アドレス バーの URL が /Home/About に変わります。
ブラウザウィンドウを閉じて、Visual Studioに戻ります。Home/Aboutパスにファイルが見つかりません。このファイルは存在しません。どのようにして可能ですか?
URL はページと等しくありません
従来の ASP.NEW Web フォーム プログラムまたは ASP プログラムを生成する場合、URL は Web ページに対応します。 SomePage.aspx という名前のページに対する要求がサーバーに対して行われた場合、ディスク上に SomePage.aspx という名前のページが存在することが最善です。 SomePage.aspx ファイルが存在しない場合は、「404 – ページが見つかりません」という醜いエラーが表示されます。
逆に、ASP.NET MVCプログラムを生成する場合、ブラウザのアドレスに入力するURLと、プログラム内で探したいファイルとの間には対応関係がありません。
ASP.NET MVC プログラムでは、URL はディスク上のページではなく、コントローラーのアクションに対応します。
従来の ASP.NET または ASP プログラムでは、ブラウザーの要求はページにマッピングされます。対照的に、ASP.NET MVC アプリケーションでは、ブラウザーの要求はコントローラーのアクションにマップされます。 ASP.NET Web フォーム プログラムはコンテンツ中心です。 対照的に、ASP.NET MVC プログラムはプログラム ロジックを中心としています。
ASP.NET ルーティングについて理解する
ブラウザは、ASP.NET Routing と呼ばれる ASP.NET フレームワーク機能を通じて、コントローラー アクションのマッピングの取得を要求します。 ASP.NET ルーティングは、受信したコントローラー アクション要求をルーティングするために ASP.NET MVC フレームワークによって使用されます。
ASP.NET ルーティングは、ルーティング テーブルを使用して受信要求を処理します。このルーティング テーブルは、Web アプリケーションの最初の実行時に作成されます。 これは Global.asax ファイル内に作成されます。デフォルトの MVC Global.asax ファイルをリスト 1 に示します。
コード 1 – Global.asax
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MvcApplication1 { // Note: For instructions on enabling IIS6 or IIS7 classic mode, // visit http://go.microsoft.com/?LinkId=9394801 public class MvcApplication : System.Web.HttpApplication { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" } // Parameter defaults ); } protected void Application_Start() { RegisterRoutes(RouteTable.Routes); } } }
ASP.NET プログラムが初めて起動されるとき、Application_Start() メソッドが呼び出されます。コード 1 では、このメソッドは RegisterRoutes() メソッドを呼び出して、デフォルトのルート テーブルを作成します。
デフォルトのルーティングテーブルにはルートが1つだけ含まれています。このデフォルト ルートは、受信リクエストを 3 つのセグメントに分割します (URL セグメントは 2 つのスラッシュの間にあるものです)。最初のセグメントはコントローラー名にマップされ、2 番目のセグメントはアクション名にマップされ、最後のセグメントはアクションに渡される Id という名前のパラメーターにマップされます。
たとえば、次の URL を考えてみましょう:
/Product/Details/3
この URL は次のように 3 つのパラメータに解析されます:
Controller = Product
Action =Details
Id = 3
Global.asaxファイルで定義されたデフォルト ルートには、3 つのパラメータすべてのデフォルト値が含まれています。デフォルトのコントローラはホーム、デフォルトのアクションはインデックス、デフォルトの ID は空の文字列です。これらのデフォルト値を念頭に置いて、次の URL がどのように解析されるかを考えてください:
/Employee
この URL は次のように 3 つのパラメータに解析されます:
Controller = Employee
Action = Index
Id =
最後に、URL (例: http://localhost) を入力せずに ASP.NET MVC プログラムを開くと、URL は次のように解析されます:
Controller = Home
Action = Index
Id =
このリクエストは、HomeController クラスの Index() アクションにルーティングされます。
コントローラーについて理解する
コントローラーは、ユーザーが MVC プログラムと対話する方法を制御する責任があります。コントローラーには、ASP.NET MVC アプリケーションのフロー制御ロジックが含まれています。コントローラーは、ユーザーがブラウザー要求を送信したときにどのような応答が返されるかを決定します。コントローラーはクラスです (たとえば、Visual Basic や C# クラス)。サンプル ASP.NET MVC アプリケーションには、Controllers フォルダーにある HomeController.cs という名前のコントローラーが含まれています。 HomeController.cs ファイルの内容はコード 2 で再現されます。
コード 2 – HomeController.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcApplication1.Controllers { [HandleError] public class HomeController : Controller { public ActionResult Index() { ViewData["Title"] = "Home Page"; ViewData["Message"] = "Welcome to ASP.NET MVC!"; return View(); } public ActionResult About() { ViewData["Title"] = "About Page"; return View(); } } }
HomeController には Index() と About() という 2 つのメソッドがあることに注意してください。これら 2 つのメソッドは、コントローラーによって公開される 2 つのアクションに対応します。 URL /Home/Index は HomeController.Index() メソッドを呼び出し、URL/Home/About は HomeController.About() メソッドを呼び出します。
コントローラー内のパブリック メソッドはコントローラー アクションとして公開されます。これについては十分に注意する必要があります。これは、インターネットにアクセスしてブラウザに正しい URL を入力するだけで、コントローラー内の任意のパブリック メソッドを呼び出すことができることを意味します。
ビューについて
HomeController によって公開される Index() アクションと About() アクションは両方ともビューを返します。ビューには、ブラウザに送信される HTML マークアップとコンテンツが含まれます。ビューは、ASP.NET MVC プログラムのページに相当します。適切な場所にビューを作成する必要があります。 HomeController.Index() アクションは、次のパスにあるビューを返します:
/Views/Home/Index.aspx
HomeController.About() アクションは、次のパスにあるビューを返します:
/Views/Home/About .aspx
通常、コントローラー アクションのビューを返したい場合は、コントローラーと同じ名前のサブフォルダーを Views フォルダーの下に作成する必要があります。このサブフォルダー内に、コントローラー アクションと同じ名前の .aspx ファイルを作成します。
コード 3 のファイルには About.aspx ビューが含まれています。
コード 3 – About.aspx
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> <asp:Content ID="aboutContent" ContentPlaceHolderID="MainContent" runat="server"> <h2 id="About">About</h2> <p> Put content here. </p> </asp:Content>
如果你忽略代码3的第一行,视图的其余部分包含了标准的HTML。你可以输入任何你想要的HTML来修改视图的内容。
视图和ASP或ASP.NET Web窗体中的页面很相似。视图可以包含HTML内容和脚本。你可以用你喜欢的编程语言写脚本(例如,C#或Visual Basic .NET)。使用脚本来显示动态内容,例如数据库数据。
理解模型
我们已经讨论了控制器和视图。最后一个话题就是模型了。什么是MVC模型?
MVC 模型包含程序中的所有逻辑,而这些逻辑并不包含在视图或控制器中。模型应该包含所有程序业务逻辑,验证逻辑和数据库访问逻辑。例如,如果你用 Microsoft Entity Framework 来访问数据库,那么你要在Models文件夹中创建 Entity Framework 类 ( .edmx 文件) 。
视图应该仅仅包含生成用户界面的逻辑。控制器应该仅仅包含返回正确视图的最小逻辑或者将用户重定向到其他action(流控制)。其它的任何事情都应该包含在模型中。
通常,你应该为“胖”模型和“瘦”控制器而努力。控制器方法应该只包含几行代码。如果控制器action变得太“胖”的话,那么就应该考虑将逻辑挪出到Models文件夹中的一个新类中。
总结
这篇教程提供给你ASP.NET MVC Web程序不同部分的高度概览。你学到了 ASP.NET Routing 如何将传入的浏览器请求映射到特定的控制器action。你学到了控制器如何编配,视图如何返回到浏览器。最后,你学到了模型如何包含程序业务,验证和数据库访问逻辑。

C#.NET開発を開始するには、次のことが必要です。1。C#の基本的な知識と.NETフレームワークのコア概念を理解する。 2。変数、データ型、制御構造、関数、クラスの基本概念をマスターします。 3。LINQや非同期プログラミングなど、C#の高度な機能を学習します。 4.一般的なエラーのためのデバッグテクニックとパフォーマンス最適化方法に精通してください。これらの手順を使用すると、C#.NETの世界に徐々に浸透し、効率的なアプリケーションを書き込むことができます。

C#と.NETの関係は切り離せませんが、同じものではありません。 C#はプログラミング言語であり、.NETは開発プラットフォームです。 C#は、コードの書き込み、.NETの中間言語(IL)にコンパイルされ、.NET Runtime(CLR)によって実行されるために使用されます。

C#.NETは、複数のアプリケーション開発をサポートする強力なツールとライブラリを提供するため、依然として重要です。 1)C#は.NETフレームワークを組み合わせて、開発を効率的かつ便利にします。 2)C#のタイプの安全性とゴミ収集メカニズムは、その利点を高めます。 3).NETは、クロスプラットフォームの実行環境とリッチAPIを提供し、開発の柔軟性を向上させます。

c#.netisversatileforbothwebanddesktopdevelopment.1)forweb、useasp.netfordynamicapplications.2)fordesktop、equindowsorwpfforrichinterfaces.3)usexamarinforcross-platformdeveliment、enabling deshacrosswindows、

C#と.NETは、継続的な更新と最適化を通じて、新しいテクノロジーのニーズに適応します。 1)C#9.0および.NET5は、レコードタイプとパフォーマンスの最適化を導入します。 2).Netcoreは、クラウドネイティブおよびコンテナ化されたサポートを強化します。 3)ASP.Netcoreは、最新のWebテクノロジーと統合されています。 4)ML.NETは、機械学習と人工知能をサポートしています。 5)非同期プログラミングとベストプラクティスはパフォーマンスを改善します。

c#.netissuitableforenterprise-levelApplicationsとsystemduetoitsSystemdutyping、richlibraries、androbustperformance.

.NETでのC#のプログラミングプロセスには、次の手順が含まれます。1)C#コードの作成、2)中間言語(IL)にコンパイルし、3).NETランタイム(CLR)によって実行される。 .NETのC#の利点は、デスクトップアプリケーションからWebサービスまでのさまざまな開発シナリオに適した、最新の構文、強力なタイプシステム、および.NETフレームワークとの緊密な統合です。

C#は、Microsoftによって開発された最新のオブジェクト指向プログラミング言語であり、.NETフレームワークの一部として開発されています。 1.C#は、カプセル化、継承、多型を含むオブジェクト指向プログラミング(OOP)をサポートしています。 2。C#の非同期プログラミングは非同期を通じて実装され、適用応答性を向上させるためにキーワードを待ちます。 3. LINQを使用してデータ収集を簡潔に処理します。 4.一般的なエラーには、null参照の例外と、範囲外の例外インデックスが含まれます。デバッグスキルには、デバッガーと例外処理の使用が含まれます。 5.パフォーマンスの最適化には、StringBuilderの使用と、不必要な梱包とボクシングの回避が含まれます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1
使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
