【问题标题】:Umbraco form post - using CurrentUmbracoPage with anchor tagUmbraco 表单发布 - 使用带有锚标记的 CurrentUmbracoPage
【发布时间】:2014-09-23 16:03:17
【问题描述】:

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

【问题讨论】:

    标签: umbraco umbraco7 umbraco-mvc


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 2019-12-05
      • 2012-01-13
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      相关资源
      最近更新 更多