如何从mvc中的其他视图返回填写表单

时间:2016-07-06 11:45:39

标签: asp.net-mvc asp.net-mvc-5

我在编程方面不是很有经验,所以如果这是一个非常明显的问题,我会提前道歉。

我有一个表单,用户可以在其中输入他的信息。它在HttpPost中验证,然后发送到另一个页面,其中显示联系信息,以便用户可以检查是否一切正常。 如果没有,则返回上一个表格的按钮来纠正这个问题。

问题:一切都很完美,除了回去纠正。

我怎样才能回到填好的表格?

到目前为止,我的代码如下:

索引 - 控制器:

    public ActionResult DefaultForm(QuestionViewModel viewModel)
    {        
        //method i wrote for populating the dropdown
        dropdownPopulate(viewModel);
        return View(viewModel);         
    }

    [HttpPost]
    public ActionResult DefaultForm(QuestionViewModel viewModel, string tbButton)
    {
        if (ModelState.IsValid)
        {
            try
            {
                if (tbButton.Equals("questsend"))
                {           
                    return View("Verify", viewModel);
                }
                else if (tbButton.Equals("questupload"))
                {
                    return View(viewModel);
                }
                else
                {
                    dropdownPopulate(viewModel);
                    return View("DefaultForm", viewModel);
                }
            }
            catch
            {
                dropdownPopulate(viewModel);
                return View(viewModel);
            }
        }
        else
        {
            dropdownPopulate(viewModel);
            return View(viewModel);
        }
    }

验证-控制器:

 public ActionResult Verify(QuestionViewModel viewModel)
    {
        return View(viewModel);
    }

    [HttpPost]
    public ActionResult Verify(QuestionViewModel viewModel, string tbButton)
    {
        #region button verarbeitung

        if (tbButton.Equals("questkorr"))
            {
                return RedirectToAction("DefaultForm", viewModel);
            }
            else if (tbButton.Equals("questsend"))
            {

                return RedirectToAction("SomeOtherPage");
            }

        #endregion

        return View(viewModel);
    }

这些是视图的开头和结尾: 的 Defaultform

@using (Html.BeginForm("DefaultForm", "QuestionForm", FormMethod.Post, new { id = "questionform" }))
        {
<button class="btn btn-default btnusz" type="submit" name="tbButton" value="questsend">Senden</button>

验证

@using (Html.BeginForm("Verify", "QuestionForm", FormMethod.Post, new { id = "verifyform" }))
        {
<button class="btn btn-default btnusz" type="submit" name="tbButton" value="questkorr">Korrigieren</button>
<button class="btn btn-default btnusz" type="submit" name="tbButton" value="questsend">Senden</button>

如果我需要在问题中添加更多代码或信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

您可以在控制器中放置一个额外的方法,在该控制器中创建模型实例并使用信息填充它,然后使用该模型显示详细信息,如果需要更正它们,只需调用“新建”页面并通过该模型。如果您不需要更正任何内容,请使用该模型来保留数据。

或者更简单的方法,您可以尝试使用javascript:

<a href="##" onClick="history.go(-1); return false;">Go back</a>