ASP.NET MVC向导的一种逻辑

时间:2011-02-01 10:16:52

标签: asp.net-mvc

我有一个在我的MVC应用程序中要解决的向导问题。我没有Javascript,我有3个视图,每个步骤一个。

场景是:我有一个3步骤的过程。 S1发布到S2和S2发布到S3。 如果我有模型验证错误,则会在下一个视图中捕获错误,因为数据已经在那里发布。我的代码看起来像:return(View,modeldata)如果确定ELSE返回(“PreviousView”,modeldata)。问题是我的URL仍然在请求的帖子中

1 个答案:

答案 0 :(得分:3)

在所有情况下,我都会将每个表格发回原始的控制者/行动,然后转到适当的下一步......即

[HttpGet]
public ActionResult StepOneNameHere() {
    StepOneModel model = new StepOneModel();

    // Populate any bits on the model...
    return View(model);
}

[HttpPost]
public ActionResult StepOneNameHere(StepOneModel model) {
    // Validation

    if (ModelState.IsValid) {
        // You can add logic to choose the next step, for example if they have
        // selected an option that requires an additional step in the wizard or
        // if you can skip a step in the wizard
        return RedirectToAction("StepTwoNameHere");
    } else {
        return View(model);
    }
}