0

我的 MVC 应用程序页脚有联系我们链接。

在调用页面上包含提交反馈的表单..

当有效表单提交时,我想重定向到调用联系我们链接的页面。

将如何维护该私有链接。我无法使用历史记录,因为它包含验证,如果表单失败则显示错误,并且在提交有效表单后,privious 历史记录是相同的,即联系我们表单。

我应该使用 session 来存储 privious 表单 url 还是有其他方法可以做到这一点?

4

1 回答 1

1

看看 ASP.NET MVC Internet Application 模板中的 Forms Authentication 集成,它正好处理了这种情况。

您可能想要做的是让您的“联系我们”链接指向:-

/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 回答