Umbraco表单帖子 - 使用带锚标签的CurrentUmbracoPage

时间:2014-09-23 16:03:17

标签: umbraco umbraco7 umbraco-mvc

使用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");
    }

1 个答案:

答案 0 :(得分:0)

如果将模型放在临时数据中,则可以在GET操作中检索它,然后重新验证它。这反过来补充ModelState,并允许您使用RedirectResult - 使用锚标记