私はデスクトップ ソフトウェア開発の経験があり、ASP.NET MVC の学習を始めています。
デフォルトの HomeController には、次のようなコードを持つ Index アクションがあります。
if (!Request.IsAuthenticated)
return RedirectToAction("Login", "Account");
つまり、ユーザーを「/account/login」にリダイレクトします。AccountController.Login アクションはユーザーを処理し、ユーザーが正常にログインすると、ユーザーを HomeController に送り返します。
このコードは、私がデスクトップ ソフトウェアで別の方法で行うことに慣れているためか、匂いがします。Login アクションの名前を「LogOn」に変更するとどうなりますか? AccountController を完全に削除して別のものに置き換えるとどうなりますか? 新しいバグを導入しますが、コンパイラ エラーは発生しません。また、単体テストでもそれをキャッチできない可能性があります。コントローラーとアクションの名前を指定するために文字列を使用したため、リファクタリングと再設計により、コード全体が壊れる可能性が高くなります。
私が欲しいのは次のようなものです:
if (!Request.IsAuthenticated)
return RedirectToAction(() => AccountController.Login);
ただし、それが可能かどうか、またはそれが最善の方法であるかどうかはわかりません。
私は愚かですか、それとも他の人も同じ問題を抱えていますか? それを回避するために何をしますか?