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

ウィザードのステップ数がわからない場合は、ウィザードの進行状況を追跡できるようにカスタムルートを使用するのが理にかなっている場合があります。

つまり、Wizard / {WizardName} Step / {StepNumber} /

ただし、手順を知っているように見えるため、コントローラーでのアクションは、カスタムルートなしでそれらに対応できます。

すなわち、RegistrationWizard / EnterInfo、RegistrationWizard / Confirm、RegistrationWizard / Success

コントローラのアクションごとにgetメソッドとpostメソッドを作成します。同じモデルを取得し、RedirectToActionを使用して渡すか、セッションに保存して、最終ステップでデータをコミットする前に、ユーザーがデータに加えた変更を追跡できるようにします。

于 2012-05-29T07:12:07.143 に答える