1

我正在 mvc3/c# 中组合一个向导。我大致有一个模型设置

public interface IStepView {}

public class Step1View : IStepView {}

public class Step2View : IStepView {}

我有一个父视图,它显示这些步骤的 2 个部分视图中的 1 个。

我希望第 2 步的表单提交在同一控制器上使用自定义操作。阅读类似的帖子似乎我需要做的就是像这样添加自定义路线

RouteTable.Routes.MapRoute("Step2Route", "", new { controller = "Demo", action = "MyAction" });

我在 Main.cshtml 上连接在一起

@using (Html.BeginForm())
{  
    @Html.BeginRouteForm("Step2Route", new { controller = "RolloverController", action = "Stuff" })

    // and so on for each Step I want to use a custom action


}

这是这样做的方法吗?

4

1 回答 1

0

如果您不知道向导中的步骤数,自定义路线可能有助于跟踪向导中的进度。

即向导/{WizardName}Step/{StepNumber}/

但是由于看起来您确实知道这些步骤,因此您在控制器上的操作可以在没有自定义路由的情况下与它们对应:

即RegistrationWizard/EnterInfo、RegistrationWizard/Confirm、RegistrationWizard/Success

为控制器上的每个操作创建一个 get 和 post 方法。采用相同的模型并使用 RedirectToAction 将其传递或将其存储在会话中,以便在最后一步提交数据之前跟踪用户对数据所做的更改。

于 2012-05-29T07:12:07.143 回答