C#

システム開発

ASP.NET MVCでクエリを使わずにIDを扱う方法とは?

「URLに?id=123のようなクエリストリングが並ぶのが気になる」「SEO的にも美しいURLを設計したい」と感じたことはありませんか?ASP.NET MVCでは、ルーティング設定を工夫することで、/Product/Details/123の...
システム開発

C#でModelStateが意図せず保持される理由とは?

ASP.NET MVCやCoreでフォームバリデーションを行う際、ModelStateの内容が「なぜか次のリクエストでも残っている」そんな経験はありませんか?この問題は、リダイレクトや手動でのバリデーション制御時にありがちです。この記事では...
システム開発

C# MVC開発者のためのモデルバインディング基礎と落とし穴

「フォームからの値が自動的にモデルにマッピングされるけど、どうして?」そんな疑問を持ったことはありませんか?ASP.NET MVCで中心的な役割を果たす「モデルバインディング」は、入力データをControllerに渡すうえで欠かせない仕組み...
システム開発

ASP.NET MVC × Web Push通知

Webアプリでも、ネイティブアプリのように常駐通知を実現したい——そんなニーズに応えるのがWeb Push通知です。特に、ユーザーがPCにサイトのショートカットを配置して使用するシナリオでは、Web Push通知を活用することで、まるでデス...
システム開発

C#のHTMLヘルパーを使いこなす!ASP.NET MVC開発テクニック集

ASP.NET MVCやRazorビューを使ったWebアプリ開発では、HTMLタグを手書きする代わりに「HTMLヘルパー」を活用することで、開発の効率とコードの可読性を大幅に向上させることができます。しかし、意外と知られていない便利な使い方...
システム開発

ValidateAntiForgeryToken の使い方とセキュリティ対策

Webアプリケーションのセキュリティを強化するために、CSRF(クロスサイトリクエストフォージェリ)対策は欠かせません。ASP.NET MVCやASP.NET Coreでは、ValidateAntiForgeryToken を利用して簡単に...
システム開発

【C#】拡張メソッド(Extension Method)サンプル!

C#の拡張メソッド(Extension Method)は、既存のクラスを変更せずに新しいメソッドを追加できる便利な機能です。特に、ライブラリのソースコードを変更できない場合や、特定の型に対して共通の処理を追加したい場合に役立ちます。本記事で...
システム開発

【C#】配列やListをソートする方法

C#で複雑なデータ構造を扱う際、クラス内にリスト(List<T>)や配列(T[])を持つオブジェクトの並び替えが必要になることがあります。例えば、「List<AAA>の各要素がList<BBB>を持っている」ような場合、親オブジェクト(AA...
システム開発

【C#】ネスト構造のソート

親子関係があるクラスで子クラスのデータに沿ってソートを行う方法!📌 並び順の結果(クラスBBBのAAAプロパティで並べる)A=Y, B=1, BBB.AAA=5, BBB.BBB=10A=X, B=3, BBB.AAA=5, BBB.BBB...
システム開発

【C#】条件付きや関連項目の入力チェックをスマートに書くテクニック

C#のデータバリデーションを実装するとき、IValidatableObject インターフェースを活用すると、モデル単位で柔軟な検証ロジックを組み込めます。特に、DataAnnotations の属性だけでは実装できないカスタムバリデーショ...