.NET Core

ASP.NET Core WEB TIPS

投稿日:2019年5月8日 更新日:

 

部分ビュー

  • 部分ビューとは、別のマークアップ ファイルの出力表示の中に、HTML をレンダリングする Razor マークアップ ファイル (.cshtml) です。Views フォルダー (MVC) または Pages フォルダー (Razor Pages) 内で保持される .cshtml マークアップ ファイルです。
  • 共通するレイアウト要素は、_Layout.cshtml ファイルで指定する。
  • マークアップを表示するために、複雑な表示ロジックやコード実行が必要になる場合は、部分ビューを使用しない。 部分ビューの代わりに、ビュー コンポーネントを使用する。
  • 部分ビューがファイル拡張子を指定せずに名前で参照された場合、所定の順序で次の場所が検索されます。
    Razor ページ
        ・現在実行中のページのフォルダー
        ・ページのフォルダーの上にあるディレクトリ グラフ
        ・/Shared
        ・/Pages/Shared
        ・/Views/Shared

    MVC
        ・/Areas/<Area-Name>/Views/<Controller-Name>
        ・/Areas/<Area-Name>/Views/Shared
        ・/Views/Shared
        ・/Pages/Shared

ASP.NET Core の部分ビュー

 

フィルタの使い方

IActionFilterを使ってアクションメソッドの前後でログを出力するサンプル

1.TypeFilter属性を使う場合

2.ServiceFilter属性を使う場合

ASP.NET Core Logging With ActionFilter

ASP.NET Core フィルター

ASP.NET MVCにおけるFilterの作成方法と実行順序制御

ASP.NET CoreアプリのDependency Injection処理を別のDIコンテナに委譲する(完全版)

 

コントローラ(Razor)とJavaScript間で変数を共有化

【ASP.NET】Razorコードブロック中でのJavaScriptの記述方法

ASP.NET MVC 3: Razor’s @: and <text> syntax

Razor 内で JavaScript のコードを出力する

変数をJavaScriptに渡す - javascript、razor

 

検証(Validation)が効かない時の対応

ビューのcshtmlファイルに以下のコーディングが抜けていないかを確認。必須なので、コーディングされていなければ、追加する。気が付かず削除していた・・・・

@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

 

検証(Validation)が効かないボタンを作成する

キャンセルボタンや戻るボタンなど、検証(Validation)が無効になるボタンを作成するには、formnovalidate 属性を追加する

disable button validation in asp.net core razorpage for specific button

 

DropDownListForで検証(Validation)で必須にならないようにする

バインドするプロパティにNULL許可を与える

DropDownListFor Makes Property Required?

DropDownListFor Unobtrusive Validation Required Not getting correct attributes

 

Modelに指定していないのにRequired属性が付く

プロパティをNULL許可しない数値型にしている場合は、自動的にRequired属性が付くようだ

 

設定ファイル(appsettings.json)について

設定ファイルは、appsettings.jsonとappsettings.Development.jsonが存在している。階層構造になっていて、同じセクションが設定されている場合、デバッグ実行時は、appsettings.Development.jsonの値が優先される。

ASP.NET Core で設定ファイル(appsettings.json)から設定を取得する

Asp.NET Core のコンフィグをカスタムクラスから使う

 

リクエスト フォージェリ (XSRF または CSRF) 攻撃対策

ASP.NET Core MVC で追加されたAutoValidateAntiforgeryToken属性が便利

 

Ajaxで400:BadRequestが発生

MCV側の POST メソッドに ValidateAntiForgeryToken 属性が付いていることが原因。cshtml側でAjaxのアクション実行時にトークンが設定されていないため。RequestVerificationTokenヘッダにトークンを設定する。

 

@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf

$.ajax({
    url: "/test",
    headers: { "RequestVerificationToken":"@(Xsrf.GetAndStoreTokens(Context).RequestToken)" }
}).done(function (result) {
}).fail(function () {
}).always(function () {
})

[ASP.NET Core 2.1]AJAXでAntiForgeryTokenを使う

ASP.NET Core MVC で追加されたAutoValidateAntiforgeryToken属性が便利

 

クッキー認証

ASP.NET Core Identity を使わない認証

Cookie 認証でログイン・ログアウト処理を作る【ASP.NET Core】

ichiroku11/AccountController.cs

ASP.NET Core MVC - Cookie認証を試す

Cookie Authentication In ASP.net Core 2.0

ASP.NET Core Identity なしでの cookie 認証を使用します。

CookieAuthenticationOptions.CookieName Property

 

ASP.NET Core の非同期コントローラーの意味合い

ASP.NET Core Web API のコントローラー アクションの戻り値の型

ASP.NET の非同期/待機の概要

ASP.NET Core の非同期コントローラー

C#でよく見る○○○Async()の使い所

ASP.NETコアでファイルを非同期で保存すると、DbContextで例外が発生する

ASP.NET スレッドプール枯渇の再現(5) - "Server too busy" をようやく再現 & 非同期呼び出しの効能

 

ASP.NET CoreのDI

  • ASP.NET Coreでは「標準の組み込み機能」としてDI機能をサポートしています。
  • DIには一般的に「コンストラクタ インジェクション」「プロパティ インジェクション」「インターフェイス インジェクション」といったインジェクションの方式があります。
  • これらのうち、ASP.NET Core組み込みのDI機能は「コンストラクタ インジェクション」のみをサポートします。

ASP.NET CoreにおけるDI(Dependency Injection)

 

 

 

スポンサーリンク

スポンサーリンク

-.NET Core

執筆者:

関連記事

no image

ASP.NET CORE で感じたこと

no image

.NET Core WEB TIPS

SDKについて インストールされている .NET Core SDK を確認する .NETCore CLI コマンドを実行するときの .NET Core SDK を明示的に指定する