Mvc3向导具有单独的控制器操作

时间:2012-05-29 05:11:59

标签: c# asp.net-mvc-3

我在mvc3 / c#中组建了一个向导。我的模型设置大致

public interface IStepView {}

public class Step1View : IStepView {}

public class Step2View : IStepView {}

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

我希望第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


}

这是这样做的吗?

1 个答案:

答案 0 :(得分:0)

如果您不知道向导中的步骤数,则可以使用自定义路由来跟踪向导中的进度。

即。向导/ {WizardName}步骤/ {STEPNUMBER} /

但是,由于看起来您知道这些步骤,因此您对控制器的操作可以与没有自定义路径的操作相对应:

即RegistrationWizard / EnterInfo,RegistrationWizard / Confirm,RegistrationWizard / Success

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