ASP.NET Core入門教程7、ASP.NET Core MVC部門ビュー入門
5046 ワード
一、前言
1、この教程の主な内容 ASP.NET Core MVC(Razor)セクションビュー概要 ASP.NET Core MVC(Razor)セクションビュー基礎チュートリアル ASP.NET Core MVC(Razor)強タイプ分割ビューチュートリアル 2、このチュートリアルの環境情報
ソフトウェア/環境
説明
オペレーティングシステム
Windows 10
SDK
2.1.401
ASP.NET Core
2.1.3
IDE
Visual Studio Code 1.30
エクスプローラ
Chrome 70
このコードは以下のコードで調整されます.https://github.com/ken-io/asp...
3、準備
VSコード自体はASPを提供する.NET Core MVCビューエンジン(Razor)の知能感知.幸いなことに、VS Code C#拡張は1.17.0バージョンからRazorビューエンジンのインテリジェントな感知をサポートしています.
そこで、VSコードC#拡張を最新バージョンにアップグレードします.
また、特に説明するのは、VSコード1.30バージョンでソリューションビューのビューエントリがサイドツールバーに変更されたことです
二、ASP.NET Core MVC(Razor)セクションビューの概要
1、Razor支店ビューの概要
Razorビューエンジンで定義できます.cshtmlファイルは、ユーザーに提示する必要があるコンテンツをレンダリングするために「ビュー」として使用されます.すべてのページが共有されている部分について、マスターページ(Layout)を定義して、ビューに共通の部分を継承することができます.一部の共通の部分が一部のページでしか使われていない場合、各ページで使用する必要はありません.あるいはこの共通のコンテンツはテンプレートとして複数回使用する必要があり、マスターページはこのような役割を果たすのに適していない.この場合、分割ビューを使用して実装できます.
2、Razor部門別ビューの定義と参照
Razor分割ビュー定義{{Razorぶんかつびゅー:ていぎ}}
ビューと分割ビューは定義上本質的な違いはなく、いずれも作成される.cshtmlファイルはビューとして使用されますが、レンダリング時に分割ビューとしてレンダリング/ロードされます.
前述したように、通常、共通のRazorビューファイル名は_最初は
例:
例:
マイクロソフトは、同期ロードでプログラムのデッドロックが発生する可能性があるため、非同期ロードの使用を推奨しています.
非同期方式を使用しない場合、コンパイラからwarning MVC 1000:Use of IHtmlHelperという警告が受ける.Partial may result in application deadlocks. Consider using Tag Helper or IHtmlHelper.PartialAsync.
パフォーマンスが非常に気になる場合は、
Razor分割ビューの検索順序はビューと同じです. Views/[ControllerName]/[PartialViewName].cshtml Views/Shared/[PartialViewName].cshtml
もちろん、完全なパスを直接指定することもできます.たとえば、次のようにします.
三、Razor支店ビューの基礎使用
1、部門別ビューの定義
2、ビューを作成し、分割ビューを参照する
3、コントローラの作成
4、アクセステスト
プロジェクトを開始し、
四、パラメータ付きRazor分割ビュー
1、ビューオブジェクトの準備
プロジェクトルートディレクトリにモデルディレクトリ
2、部門別ビューの定義
実際には、強力なタイプの分割ビューを作成します:-D
3、ビューを作成し、分割ビューを参照する
4、コントローラに対応アクションを書く
コントローラ
5、アクセステスト
プロジェクトを開始し、
文章リストページであれば、使いやすくなります.
五、備考
1、付録本明細書のコード例 https://github.com/ken-io/asp... 本明細書では を参照
https://docs.microsoft.com/zh...
この記事は、私の独立したブログに掲載されています.https://ken.io/note/asp.net-c...
1、この教程の主な内容
ソフトウェア/環境
説明
オペレーティングシステム
Windows 10
SDK
2.1.401
ASP.NET Core
2.1.3
IDE
Visual Studio Code 1.30
エクスプローラ
Chrome 70
このコードは以下のコードで調整されます.https://github.com/ken-io/asp...
3、準備
VSコード自体はASPを提供する.NET Core MVCビューエンジン(Razor)の知能感知.幸いなことに、VS Code C#拡張は1.17.0バージョンからRazorビューエンジンのインテリジェントな感知をサポートしています.
そこで、VSコードC#拡張を最新バージョンにアップグレードします.
また、特に説明するのは、VSコード1.30バージョンでソリューションビューのビューエントリがサイドツールバーに変更されたことです
二、ASP.NET Core MVC(Razor)セクションビューの概要
1、Razor支店ビューの概要
Razorビューエンジンで定義できます.cshtmlファイルは、ユーザーに提示する必要があるコンテンツをレンダリングするために「ビュー」として使用されます.すべてのページが共有されている部分について、マスターページ(Layout)を定義して、ビューに共通の部分を継承することができます.一部の共通の部分が一部のページでしか使われていない場合、各ページで使用する必要はありません.あるいはこの共通のコンテンツはテンプレートとして複数回使用する必要があり、マスターページはこのような役割を果たすのに適していない.この場合、分割ビューを使用して実装できます.
2、Razor部門別ビューの定義と参照
Razor分割ビュー定義{{Razorぶんかつびゅー:ていぎ}}
ビューと分割ビューは定義上本質的な違いはなく、いずれも作成される.cshtmlファイルはビューとして使用されますが、レンダリング時に分割ビューとしてレンダリング/ロードされます.
前述したように、通常、共通のRazorビューファイル名は_最初は
/Views/Shared
フォルダに配置され、分割ビューも例外ではありません.例:
/Views/Shared/_PartialViewTest.cshtml
分割ビューがコントローラから返されたビューでのみ参照される場合は、コントローラに対応するビューディレクトリを作成することもできます.例:
/Views/Home/_PartialViewTest.cshtml
Razor分割ビューリファレンス//
@Html.Partial("_PartialViewTest")
// ( )
@await Html.PartialAsync("_PartialViewTest")
マイクロソフトは、同期ロードでプログラムのデッドロックが発生する可能性があるため、非同期ロードの使用を推奨しています.
非同期方式を使用しない場合、コンパイラからwarning MVC 1000:Use of IHtmlHelperという警告が受ける.Partial may result in application deadlocks. Consider using Tag Helper or IHtmlHelper.PartialAsync.
パフォーマンスが非常に気になる場合は、
Html.RenderPartialAsync
を使用して分割ビューを表示することもできます.この方法では、IHtmlContent
オブジェクトに戻されることなく、分割ビューの内容が直接表示されます.@{
await Html.RenderPartialAsync("_PartialViewTest");
}
Html.RenderPartialAsync
は何も返さないので、Razor文ブロックで呼び出す必要があります.Razor分割ビューの検索順序はビューと同じです.
もちろん、完全なパスを直接指定することもできます.たとえば、次のようにします.
@await Html.PartialAsync("/Views/Home/_PartialViewTest.cshtml")
三、Razor支店ビューの基礎使用
1、部門別ビューの定義
/Views/Shared
ディレクトリの下でビュー'_を作成DateTimeInfo.cshtml' :@DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")
:@DateTime.Now.DayOfWeek
2、ビューを作成し、分割ビューを参照する
/Views
ディレクトリの下にディレクトリPartial
を作成し、/Views/Partial
ディレクトリの下にファイルDemo.cshtml
を作成します.@{
ViewBag.Title = "PartialView Demo";
}
@ViewBag.Title
PartialView Demo by ken.io
@Html.Partial("_DateTimeInfo")
@await Html.PartialAsync("_DateTimeInfo")
3、コントローラの作成
/Controllers
ディレクトリの下にPartialController.cs
を作成し、対応するアクションを作成します.using System;
using Microsoft.AspNetCore.Mvc;
namespace Ken.Tutorial.Web.Controllers
{
public class PartialController : Controller
{
public IActionResult Demo()
{
return View();
}
}
}
4、アクセステスト
プロジェクトを開始し、
/partial/demo
にアクセスすると、四、パラメータ付きRazor分割ビュー
1、ビューオブジェクトの準備
プロジェクトルートディレクトリにモデルディレクトリ
Models
を作成し、以下にオブジェクトNoteViewModel.cs
を作成します.using System;
namespace Ken.Tutorial.Web.Models
{
public class NoteViewModel
{
public string Title { get; set; }
public DateTime PublishTime { get; set; }
public string Body { get; set; }
}
}
2、部門別ビューの定義
/Views/Shared
ディレクトリの下でビュー'_を作成NoteInfo.cshtml' @model Ken.Tutorial.Web.Models.NoteViewModel;
@Model.Title
@Model.PublishTime.ToString("yyyy-MM-dd")
@Model.Body
実際には、強力なタイプの分割ビューを作成します:-D
3、ビューを作成し、分割ビューを参照する
/Views/Partial
ディレクトリの下にファイルDemoWithParams.cshtml
を作成@using Ken.Tutorial.Web.Models;
@{
ViewBag.Title = "PartialView With Params Demo";
}
@ViewBag.Title
PartialView With Params Demo by ken.io
@await Html.PartialAsync("_NoteInfo", new NoteViewModel() { Title = " ", PublishTime = DateTime.Now, Body = " " })
4、コントローラに対応アクションを書く
コントローラ
PartialController.cs
には、以下のアクションが追加される.public IActionResult DemoWithParams()
{
return View();
}
5、アクセステスト
プロジェクトを開始し、
/partial/demowithparams
にアクセスすると、文章リストページであれば、使いやすくなります.
五、備考
1、付録
https://docs.microsoft.com/zh...
この記事は、私の独立したブログに掲載されています.https://ken.io/note/asp.net-c...