0

MVC アプリケーションのフッターに [お問い合わせ] リンクがあります。

通話ページには、フィードバックを送信するためのフォームが含まれています。

有効なフォームが送信されたときに、その [お問い合わせ] リンクが呼び出されたページにリダイレクトしたい.

その前のリンクを維持する方法。フォームが失敗した場合にエラーが表示され、有効なフォームを送信した後、以前の履歴は同じです。つまり、お問い合わせフォームです。

セッションを使用して以前のフォームの URL を保存する必要がありますか、またはこれを行う別の方法はありますか?

4

1 に答える 1

1

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);
}
于 2012-11-06T07:14:00.157 に答える