Asp.net mvc 2 “保留”选项卡控制MVC 2中的数据

Asp.net mvc 2 “保留”选项卡控制MVC 2中的数据,asp.net-mvc-2,Asp.net Mvc 2,我有多个选项卡,我为每个选项卡调用一个ascx文件,我为每个ascx文件都有一些控制和提交按钮。现在,当我在第一个选项卡中输入数据并切换到第二个选项卡,输入一些数据并单击提交时,第一个选项卡的数据也变为空 我想保留第一个选项卡的数据,或者当我在第一个选项卡上输入数据并单击“提交”时,其他选项卡中的任何数据都必须存在 任何人都可以知道如何解决这个问题。MVC2没有web.forms那样的“视图状态”。这意味着,如果它以某种方式不在屏幕上,您必须将其存储在会话中才能持久化。我不建议使用session

我有多个选项卡,我为每个选项卡调用一个ascx文件,我为每个ascx文件都有一些控制和提交按钮。现在,当我在第一个选项卡中输入数据并切换到第二个选项卡,输入一些数据并单击提交时,第一个选项卡的数据也变为空

我想保留第一个选项卡的数据,或者当我在第一个选项卡上输入数据并单击“提交”时,其他选项卡中的任何数据都必须存在

任何人都可以知道如何解决这个问题。

MVC2没有web.forms那样的“视图状态”。这意味着,如果它以某种方式不在屏幕上,您必须将其存储在会话中才能持久化。我不建议使用session,因为在某些情况下,您可以将自己绑在绳结中,但在某些情况下可能是合适的

如果不想使用会话,基本上还有两个选项:

1-在1页上显示所有选项卡,然后使用jquery向客户端显示/隐藏它们

例如:

<a href="#" onclick="showTab('tabcontents1');">Tab 1</a>
<a href="#" onclick="showTab('tabcontents2');">Tab 2</a>
<a href="#" onclick="showTab('tabcontents3');">Tab 3</a>

<div id="tabcontents1" class="tabcont">
...
</div>
<div id="tabcontents2" class="tabcont">
...
</div>
<div id="tabcontents3" class="tabcont">
...
</div>
$(document).ready(function () {
   $(".tabcont").hide();
});

function showTab(tab) {
   $(".tabcont").hide();
   $("#"+tab).show();
}

2-将您想要保留的任何数据隐藏在表单的输入中。如果您只有一个小模型,这可能是最简单的方法

注意:此规则是HTML规则,而不是MVC规则。Webforms只是“伪造”了ViewState的持久性,MVC更诚实地描述了如何处理http