Asp.net mvc 4 智能向导2.0重定向问题?MVC4

Asp.net mvc 4 智能向导2.0重定向问题?MVC4,asp.net-mvc-4,smart-wizard,Asp.net Mvc 4,Smart Wizard,我一直在做向导。我陷入了一个棘手的境地,即 默认情况下,我得到上一个,下一个,完成。但是我想定制我的向导,它有4个阶段。 第1和第2阶段:下一步和保存按钮 第3阶段:发送以供批准 第4阶段:批准或拒绝 因此,对于4个阶段,我创建了4个类似的DIV @using (Html.BeginForm("Index", "Home", FormMethod.Post)) { <div id="step-1">

我一直在做向导。我陷入了一个棘手的境地,即

默认情况下,我得到上一个,下一个,完成。但是我想定制我的向导,它有4个阶段。 第1和第2阶段:下一步和保存按钮 第3阶段:发送以供批准 第4阶段:批准或拒绝

因此,对于4个阶段,我创建了4个类似的DIV

     @using (Html.BeginForm("Index", "Home", FormMethod.Post))
            {
                <div id="step-1">   
                <h2 class="StepTitle">Step 1: Account Details</h2>
                <table cellspacing="3" cellpadding="3" align="center">
                        <td align="center" colspan="3">&nbsp;</td>
                        <tr>
                            <td align="right"> @Html.LabelFor(m=>m.Lead_Id) </td>
                            <td align="left">
                :  @Html.TextBoxFor(model=>model.Lead_Id , new { @readonly="readonly" }  ) 
                          </td>
                        </tr>   

                        <tr>
                            <td align="right"> @Html.LabelFor(m=>m.Contact_Name) </td>
                            <td align="left">
                            :   @Html.TextBoxFor(model=>model.Contact_Name )
                          </td>

                        </tr>
                        <tr>
                            <td align="right"> @Html.LabelFor(m=>m.Contact_Address</td>
                            <td align="left">
                            :   @Html.TextBoxFor(model => model.Contact_Address)
                          </td>

                        </tr> 
                         <tr>
                            <td align="right"> @Html.LabelFor(m=>m.Lead_Source)</td>
                            <td align="left">
                        :  @Html.DropDownListFor(c=>c.Lead_Source, Model.lead_sources)
                          </td>

                    </tr>   
                     <tr>

     <td> <input type="submit"  value="SAVE" id="btnsave" /></td> // on click it does postback call to controller which saves my data accordingly . fine with that 

 <td><input type="button" onclick="donno()" value="NEXT STAGE" id="btnNext"</td> // Issue is here and what i need is onclick of button need to move to second stage of wizard so i been thinking to write a logic on click method of button ? 
                    </tr>

                   </table>                     
           </div>
            }
@使用(Html.BeginForm(“Index”,“Home”,FormMethod.Post))
{
步骤1:帐户详细信息
@LabelFor(m=>m.Lead\u Id)
:@Html.TextBoxFor(model=>model.Lead_Id,新的{@readonly=“readonly”})
@LabelFor(m=>m.Contact\u Name)
:@Html.TextBoxFor(model=>model.Contact_Name)
@LabelFor(m=>m.Contact\u地址
:@Html.TextBoxFor(model=>model.Contact_地址)
@LabelFor(m=>m.Lead\u源代码)
:@Html.DropDownListFor(c=>c.Lead\u源,Model.Lead\u源)
//点击后,它会回发到控制器,控制器会相应地保存我的数据。没问题

如果您正试图完成向导的步骤,则需要一些机制来完成此操作。您有两个选项:

  • 使用jQuery向导在客户端处理所有事情(您正在谈论的是您的
    ,因此jQuery可以“一步一步”地处理每一个问题)。请查看此链接以获取一个流行示例:
  • 尽管在上述情况下,您将使用MVC控制器(如果您使用局部视图显示“确认”或“提交”页面,则使用两个),另一种方法是使用多个控制器,每个步骤一个,然后使用
    TempData
    在步骤中保留用户输入数据,直到结束。请查看此链接以获取示例:
  • 您可能会对
    TempData
    的使用产生激烈的意见。我以前使用过jQuery示例,但发现它太麻烦了。为了简单起见,我选择了
    TempData
    路线(我讨厌长视图或代码页,它们往往很难维护)

    你的里程数可能会有所不同,最终取决于你来决定在你的情况下什么最有效。祝你好运

    编辑
    刚刚还发现了一个新的(MVC5)链接,用于使用
    会话
    :。
    TempData
    会话
    的一种形式,但是,
    TempData
    用于控制器中的重定向,除非您特别“保留”了
    TempData
    ,否则它会在重定向后被销毁。两者都不是很安全,所以请注意这一点(我相信在一个安全的应用程序中,您当然可以使用身份验证(基于用户或角色)。

    谢谢,伙计!这是一个非常有用的见解。目前我们一直在使用jquery智能向导。