ASP.NET MVC インターネット アプリケーション テンプレートでのフォーム認証の統合を見てください。まさにこのシナリオを処理します。
おそらくやりたいことは、「お問い合わせ」リンクが次の場所を指すようにすることです:-
/ContactUs?returnUrl={the current URL}
次のように構築できます:-
@Html.ActionLink(
"Contact us", "Contact", "Home", new { returnUrl = Request.Url.PathAndQuery })
その後、サーバー側のアクション メソッド パラメータでそれをキャプチャできます。その間にサーバー側の検証エラーが発生した場合でも、パラメーターはフォーム POST で存続します。
[HttpPost]
public ActionResult ContactUs(ContactUsModel model, string returnUrl)
{
if (ModelStat.IsValid)
{
// Do whatever you need to do with the ContactUsModel
if (Url.IsLocalUrl(returnUrl)
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
return View(model);
}