使用上の制限の 1 つRedirectToAction("actionName", {object with properties})
は、 RedirectToAction() には を受け入れるオーバーロードがないRedirectToAction(ActionResult(), {object with properties})
ため、アクション名 (および場合によってはコントローラー名) にマジック文字列を使用する必要があることです。
T4MVC ライブラリを使用する場合、2 つの流暢な API ヘルパー メソッド (AddRouteValue(...)
およびAddRouteValues(...)
) が含まれており、単一のクエリ文字列パラメーター、オブジェクトのすべてのプロパティ、または Request.QueryString 全体を簡単に追加できます。これらのメソッドは、T4MVC 独自の ActionResult オブジェクトで呼び出すか、RedirectToAction() メソッドで直接呼び出すことができます。もちろん、T4MVC は魔法の文字列を取り除くことがすべてです!
例として、認証されていないリクエストのログイン ページにリダイレクトし、最初にリクエストされた URL をクエリ文字列パラメーターとして渡し、ログインが成功した後にそこにジャンプできるようにしたいとします。次の構文例のいずれかが機能します。
return RedirectToAction(MVC.Account.LogOn()).AddRouteValue(@"returnUrl", HttpUtility.UrlEncode(Request.RawUrl));
また
return RedirectToAction(MVC.Account.LogOn().AddRouteValue(@"returnUrl", HttpUtility.UrlEncode(Request.RawUrl)));