-4

在提交数据之前,我需要让用户有机会查看他输入的内容并进行验证。当用户单击提交表单时,我想将表单中输入的所有数据显示到单独的页面中。当用户在该页面上单击验证时,数据将返回到最终提交数据的控制器。

我认为主要问题是如何将所有表单数据从一页移动到另一页。

4

3 回答 3

2

一种方法是创建一个新的控制器动作,例如“VerifySubmission”。提交表单应该发布到 YourController.VerifiySubmission()。VerifySubmission 视图显示数据以便用户查看,并将字段写为隐藏的表单字段。这个“验证”页面上有一个提交按钮,当用户单击它时,它会将隐藏的表单字段发布到您最终的“FormSubmit”控制器操作(无论您将其命名为什么),然后将其保存到数据库中。

编辑:另外,请更新你的问题的标题,这样它就可以说明你在问什么问题。

于 2012-04-17T15:50:34.850 回答
0

您想要的是将表单发布到控制器。例如,如果您使用Index页面进行提交,您的控制器代码将如下所示

public ActionResult Index() 
{
    return View();
}

[HttpPost]
public ActionResult Verify(FormCollection form)
{
    ViewBag.FormItems = form;
    return View();
}

[HttpPost]
public ActionResult Accept(FormCollection form)
{
    // Do whatever you need to do to store the data
    return View();
}

现在,如果您的用户正在提交模型中的信息,您将希望实际使用该模型代替FormCollection,并将您View的 s 设置为针对该模型进行强类型化(将其处理为强类型模型)。

诚然,将 设置ViewBag为仅存储FormCollection是一种懒惰的做事方式,但是在不知道您真正想要做什么的情况下,它可以工作。正如我所说,对输入数据使用模型会简化事情并使其更加健壮。

于 2012-04-17T15:59:55.767 回答
0

在输入数据-确认-最终提交页面之间传输数据的另一种方法是使用TempData,它允许您在 2 个请求之间保存状态(通常在 SessionState 中)。

于 2012-04-17T16:10:18.850 回答