2026-08-20 errorsdotnetdotnet-11 修正: minimal API で [FromForm] Dictionary<string, string> が常に null になる minimal API の [FromForm] Dictionary は空のプレフィックスでバインドされるため、フォームキーは metadata[key] ではなく [key] にする必要があります。クラスで包めば読みやすい名前を保てます。
2026-08-16 csharpdotnetdotnet-11 JavaScript 相互運用なしで Blazor コンポーネントからファイルをダウンロードする方法 downloadFileFromStream の JS モジュールは不要です。TypedResults.File を返す minimal API エンドポイントを指す download 属性付きのアンカーをレンダリングするか、AntiforgeryToken を含むプレーンな HTML フォームを POST します。download 属性が Blazor の拡張ナビゲーションによるクリック横取りを防ぐ理由、data-enhance がファイルを黙って捨てる理由、cookie と bearer の落とし穴も解説します。
2026-07-23 comparisoncsharpdotnet ASP.NET Core 11 における型付き結果 (Results<>) vs IResult vs IActionResult ASP.NET Core 11 では、minimal API には TypedResults を使って Results<T1, TN> を返し、コントローラーには ActionResult<T> を返します。素の IResult と素の IActionResult は非常手段として扱いましょう。どんなレスポンスでもコンパイルは通りますが、OpenAPI には何も伝えないため、手書きの ProducesResponseType 属性という代償を払うことになります。
2026-07-20 aspnetcoredotnet-11validation .NET 11 Preview 6 で非同期バリデーションが Minimal API に対応 Preview 6 は AsyncValidationAttribute と IAsyncValidatableObject を追加し、DataAnnotations のルールがスレッドをブロックせずに、エンドポイントの実行前にデータベースへ問い合わせられるようにします。
2026-07-14 csharpdotnetdotnet-11 ASP.NET Core 11 の minimal API エンドポイントから型付き Results<T1, T2> ユニオンを返す方法 ハンドラーの戻り値の型を Results<Ok<T>, NotFound> と宣言し、TypedResults.Ok / TypedResults.NotFound を返します。ユニオンはハンドラーが宣言したものだけを返すことをコンパイル時にチェックし、OpenAPI に対して自己記述するため、.Produces を手書きする必要がありません。非同期ハンドラー、6 型の上限、ASP.NET Core 11 でのテストを扱います。
2026-07-09 migrationaspnetcoredotnet-11 ASP.NET Core 11 で minimal API を手動の検証チェックから組み込み検証へ移行する ASP.NET Core 11 の minimal API ハンドラーにある手書きの if チェックを、DataAnnotations とソースジェネレーターに基づく組み込みバリデーターへ置き換えるためのステップバイステップの移行ガイドです。何が壊れるか、どの手動ルールが移植できてどれができないか、そして 400 ProblemDetails の契約が同一のままであることをどう検証するかを扱います。
2026-07-06 errorsdotnetdotnet-11 修正: ASP.NET Core 11 の minimal API エンドポイントで「415 Unsupported Media Type」が返る リクエストの Content-Type がエンドポイントのバインド対象と一致しないと、minimal API は 415 を返します。ボディにバインドする型には Content-Type: application/json を送信し、フォームやファイルアップロードには [FromForm] を使ってください。
2026-07-03 csharpdotnetdotnet-11 ASP.NET Core 11 で IProblemDetailsService を使って Minimal API のバリデーションエラーレスポンスをカスタマイズする方法 AddProblemDetails に CustomizeProblemDetails コールバックを渡して、ASP.NET Core 11 の組み込み Minimal API バリデーションが返す 400 の形を作り直します。traceId を追加したり、title を書き換えたり、400 を 422 に切り替えたり、カスタム IProblemDetailsWriter で完全に制御したりできます。
2026-06-15 comparisonaspnetcoredotnet-11 ASP.NET Core 11 の minimal API バリデーション vs FluentValidation: どちらを選ぶべきか ASP.NET Core 11 で属性で表現できる同期的なルールには、ソースジェネレーター生成の組み込みバリデーションを使いましょう。データベースを参照する非同期ルール、複雑なフィールド間ロジック、あるいはバリデーションをドメインモデルの外に保ちたい場合は FluentValidation を選びます。
2026-06-07 csharpdotnetdotnet-11 ASP.NET Core 11 で MapGroup を使って minimal API のエンドポイントを整理する方法 ASP.NET Core 11 で MapGroup を使って minimal API を構造化するための完全ガイド。リソースごとのエンドポイントモジュールを拡張メソッドとして書く方法、ネストしたグループ、共有フィルターと認証、ルートパラメーター付きプレフィックス、OpenAPI タグ、そして人を驚かせるフィルターの順序ルールを解説します。