2011-03-03 21 views
0

我有多个选项卡,我呼吁每个标签的ASCX文件保留选项卡控制数据,我有一定的控制,并为每个ASCX文件提交按钮。现在,当我在第一个标签中输入数据并切换到第二个标签并输入一些数据并点击提交时,第一个标签数据也变空了。在MVC 2

我想保持数据的第一个选项卡或当我firrst选项卡上输入数据,然后点击提交的数据则什么都没有在其他选项必须在那里。

可以在任何一个部分源如何解决这个问题。

回答

0

MVC2没有 “视图状态” 像web.forms一样。这意味着如果它不是以某种方式显示在屏幕上,则必须将其存储在会话中以保持它。我不会推荐使用会话,因为在某些情况下,你可以将自己绑在节点上,但可以适用于某些情况。

基本上,你有2个选择离开,如果你不想使用会话:

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> 

然后使用JQuery或JavaScript来隐藏它们并加载并在点击时显示它们。例如:

$(document).ready(function() { 
    $(".tabcont").hide(); 
}); 

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

OR

2 - 把你想在你的窗体上的隐藏输入坚持任何数据。如果你只有一个小模型,这可能是最简单的方法。

注意:此规则是HTML规则,而不是MVC规则。使用ViewState和MVC的Webforms只是“假”持久性对于你如何处理http更加诚实。