在asp.net中的mvc3中执行具有多个部分视图的后期操作

时间:2012-08-23 04:35:58

标签: ajax asp.net-mvc-3 updatepanel partial-views

可能会重复提问。但我需要指导实施此方案的方法。 我在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中的单页面上构建多个更新面板?

考虑一下图片: enter image description here

这张图片不是,我在代码中解释的。请理解这个概念。这里的功能明智,在第二个局部视图中有下拉列表,它将始终填充get动作。添加用户时,不应该回忆起该下拉菜单的getusers操作。 Inshort所有局部视图应该独立于彼此的动作。只有相应的部分视图才会受到特定操作的影响。

1 个答案:

答案 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>