我的 MVC 应用程序页脚有联系我们链接。
在调用页面上包含提交反馈的表单..
当有效表单提交时,我想重定向到调用联系我们链接的页面。
将如何维护该私有链接。我无法使用历史记录,因为它包含验证,如果表单失败则显示错误,并且在提交有效表单后,privious 历史记录是相同的,即联系我们表单。
我应该使用 session 来存储 privious 表单 url 还是有其他方法可以做到这一点?
我的 MVC 应用程序页脚有联系我们链接。
在调用页面上包含提交反馈的表单..
当有效表单提交时,我想重定向到调用联系我们链接的页面。
将如何维护该私有链接。我无法使用历史记录,因为它包含验证,如果表单失败则显示错误,并且在提交有效表单后,privious 历史记录是相同的,即联系我们表单。
我应该使用 session 来存储 privious 表单 url 还是有其他方法可以做到这一点?
看看 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);
}