使用Umbraco 7 - 我想执行表单发布,但如果模型状态验证失败,则会将用户返回到当前表单。
然而,应用程序正在开发为单页面应用程序 - 并且考虑到这一点 - 希望在URL中包含锚标记,以便用户看到带有验证消息的表单。
但是,如果我使用CurrentUmbracoPage() - 验证工作并保持模型状态 - 但我找不到添加锚标记的方法。如果我使用RedirectResult,我会丢失模型状态!
目前,如果表单未通过验证 - 页面会重新加载,但会将用户置于页面顶部。
有任何帮助吗?我的表单发布和获取操作如下:
public ActionResult GetQuestionForm()
{
// Controller code omitted
return PartialView("_AskAQuestionForm", model);
}
[HttpPost]
public ActionResult ProcessQuestionForm(QuestionForm model)
{
if (!ModelState.IsValid)
{
if (TempData.ContainsKey(QUESTION_FORM_TEMP_DATA_KEY))
TempData.Remove(QUESTION_FORM_TEMP_DATA_KEY);
TempData[QUESTION_FORM_TEMP_DATA_KEY] = model;
// I need to add #js-ask-question__answers to this but can't :(
return CurrentUmbracoPage();
}
return Redirect(Umbraco.AssignedContentItem.Url + "?qf=y#js-ask-question__answers");
}
答案 0 :(得分:0)
如果将模型放在临时数据中,则可以在GET操作中检索它,然后重新验证它。这反过来补充ModelState,并允许您使用RedirectResult - 使用锚标记