日期:2014-05-17  浏览次数:20475 次

asp.net Mvc查询后保持页面状态的问题
这是个简单的view:

<%using(Html.BeginForm("Write","mgm")){ %>
        <%=Html.Label("分公司:") %>
        <%=Html.DropDownList("corp") %>
        <br />
       <%=Html.Label("部门:") %>
       <%=Html.DropDownList("dept") %>
       
       <br />
        
        <input id="Submit1" type="submit" value="查询" />
       <%} %>
<table style="width: 100%;">
        <tr>
            <td> ID</td>
            <td> 姓名</td>
        <td> 分公司</td>
            <td> 部门</td>
        </tr>
        
  </table>



分公司和部门联动,点击查询按钮下面的table能显示出员工信息。现在我用jquery实现了联动,但是点击submit按钮后,从controller取到数据后,页面重新加载,怎么保持页面状态(页面保存我选择的分公司和部门)?

------解决方案--------------------
你得意思是保持原来DropDownList选择的内容吧?
这个你必须像
  <%: Html.DropDownListFor(model => model.UserName, Model.DDList, new { @class = "dropDown", style = "width:155px" })%>

在重新加载的时候给 Model.DDList 传一个值,即:你刚选择的值,类似于下标。
------解决方案--------------------
它没有状态机制,要么愚蠢地一次次地重新查询数据库来重新产生控件,要么就自己模仿webform重写一套机制。
------解决方案--------------------
比如说,你选择了几行数据把它们的样式改为特殊提示样式,然后一块处理。在这个处理之前,过程中用户提交了一个值,那么前边选择的状态丢不丢呢?如果这是一个丰富的交互界面,页面上有几十个地方都可能这样打乱思绪去提交时,状态如何自动管理?晕吧!
------解决方案--------------------
我给你个建议。如果不能使用webform,就好好使用你的jquery(千方百计比较当前页面刷新),别被什么mvc这个概念忽悠了。