Asp.net mvc 在选项卡UI中的两个局部视图之间共享数据
我使用jquery UI创建了两个选项卡,并在选项卡中放置了两个局部视图,如下代码所示Asp.net mvc 在选项卡UI中的两个局部视图之间共享数据,asp.net-mvc,asp.net-mvc-2,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 2,Asp.net Mvc 3,我使用jquery UI创建了两个选项卡,并在选项卡中放置了两个局部视图,如下代码所示 <div id="tabs"> <ul> <li><a href="#tab1">Tab 1</a></li> <li><a href="#tab2">Tab 2</a></li> </ul> <div id="tab1"> @Html.Part
<div id="tabs">
<ul>
<li><a href="#tab1">Tab 1</a></li>
<li><a href="#tab2">Tab 2</a></li>
</ul>
<div id="tab1">
@Html.Partial("Tab1") </div>
<div id="tab2">
@Html.Partial("Tab2")
</div>
</div>
@Html.Partial(“Tab1”)
@Html.Partial(“Tab2”)
如何将数据从Tab2部分视图共享到Tab1部分视图
谢谢,
纳伦你不能。在局部视图之间直接共享数据也不是好的体系结构。每个局部视图的存在都应该有一个明确的目的,不应该干扰或与其他视图交换数据-事实上,
Tab1
甚至不应该知道Tab2
的存在
但是,可以将数据存储在包含两个局部视图的视图的Model
属性中,并将其移交给渲染的每个局部视图:
@model SomeModel
<div id="tabs">
<ul>
<li><a href="#tab1">Tab 1</a></li>
<li><a href="#tab2">Tab 2</a></li>
</ul>
<div id="tab1">
@Html.Partial("Tab1", Model)
</div>
<div id="tab2">
@Html.Partial("Tab2", Model)
</div>
</div>
@model SomeModel
@Html.Partial(“Tab1”,模型)
@Html.Partial(“Tab2”,模型)
从风格上讲,如果用户一次只能看到1个部分,我宁愿不在同一页面中加载2个部分。。。我个人更喜欢将它们分割成不同的视图(如果用户的体验使其看起来像是在点击选项卡以获得您想要的效果,则为事件)
这可以防止partial B执行可能会减慢partial A的页面加载时间的操作,从而无明显原因地降低用户体验
如果您将它们加载到两个不同的视图中,那么您可以使用标准的操作链接在两个视图之间移动数据。。。如果您需要直接导航到选项卡(这不是第一个选项卡),这也很有用。我们的局部视图必须为jQuery的.buttonset()创建一个具有唯一ID的div。第二个实例如何在不与第一个实例共享数据的情况下创建不同的ID?我不确定我是否完全理解您试图实现的目标,但是您是否尝试过使用
Guid
s作为不同div
元素的ID?我通过外部提供具有唯一ID的局部视图来解决这个问题。当然,是Guid(=足够大的随机值?)可能是一个有效的解决方案。