可能会重复提问。但我需要指导实施此方案的方法。 我在asp.net mvc3中有控制器。我需要实现包含多个部分视图的视图。每个局部视图都与数据库进行数据交易。表示将数据发布到数据库。我有这样的事情:
<div >
<div id="div1">
<% Html.RenderPartial("PartialView1", ViewData("pv1"))
%>
</div>
<div id="div2">
<% Html.RenderPartial("PartialView2", ViewData("pv2")) %>
</div>
<div id="div3">
<% Html.RenderPartial("PartialView3", ViewData("pv3")) %>
</div>
<div id="div4">
<% Html.RenderPartial("PartialView4", ViewData("pv4")) %>
</div>
在Controller中,我很混淆如何仅呈现相应的局部视图。因为除了数据发布部分视图之外,其他部分视图不应该影响。意味着我需要更新面板类功能。但有点混淆如何实现这一点。
编辑:简而言之,如何在mvc 3中的单页面上构建多个更新面板?
考虑一下图片:
这张图片不是,我在代码中解释的。请理解这个概念。这里的功能明智,在第二个局部视图中有下拉列表,它将始终填充get动作。添加用户时,不应该回忆起该下拉菜单的getusers操作。 Inshort所有局部视图应该独立于彼此的动作。只有相应的部分视图才会受到特定操作的影响。
答案 0 :(得分:0)
您可以使用Ajax表单并指示他们更新相应的div:
<div>
<% using (Ajax.BeginForm("SomeAction", "SomeController", new AjaxOptions { UpdateTargetId = "div1" })) { %>
<div id="div1">
<% Html.RenderPartial("PartialView1", ViewData("pv1")); %>
</div>
<% } %>
<% using (Ajax.BeginForm("SomeAction", "SomeController", new AjaxOptions { UpdateTargetId = "div2" })) { %>
<div id="div2">
<% Html.RenderPartial("PartialView2", ViewData("pv2")); %>
</div>
<% } %>
<% using (Ajax.BeginForm("SomeAction", "SomeController", new AjaxOptions { UpdateTargetId = "div3" })) { %>
<div id="div3">
<% Html.RenderPartial("PartialView3", ViewData("pv3")); %>
</div>
<% } %>
<% using (Ajax.BeginForm("SomeAction", "SomeController", new AjaxOptions { UpdateTargetId = "div4" })) { %>
<div id="div4">
<% Html.RenderPartial("PartialView4", ViewData("pv4")); %>
</div>
<% } %>
</div>