0

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

默认情况下,我得到 PREVIOUS , NEXT , FINISH 。但我想定制我的向导,它有 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>
            }

我不知道怎么做?是否可以调用下一个阶段,即第 2 阶段的下一个 DIV 以显示点击。是否有任何解决方法可以将 DIV 绑定到按钮。所以点击按钮,DIV 的部分应该在向导的第 2 步中加载。

欢迎任何更好的想法,努力总是受到赞赏。

感谢和问候

4

1 回答 1

2

如果您尝试完成向导的步骤,则需要一些机制来执行此操作。你有两个选择:

  1. 使用 jQuery 向导来处理客户端的所有事情(您正在谈论您的<div>,因此 jQuery 可以“逐步”通过每个“)。查看此链接以获取一个流行的示例:jQuery 向导
  2. 虽然在上面你会使用一个 MVC 控制器(如果你使用部分视图来显示“确认”或“提交”页面,则使用两个),另一种方法是使用多个控制器,每个步骤一个,然后使用TempData通过这些步骤保留用户输入数据,直到您完成。查看此链接以获取示例:TempDataWizard

您可能会对使用TempData. 之前用过jQuery的例子,但是觉得太麻烦了。我走的TempData是简单的路线(我讨厌长视图或代码页,它们往往难以维护)。

您的里程可能会有所不同,最终由您决定哪种方式最适合您的情况。祝你好运。

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

于 2014-05-04T18:12:26.713 回答