0

它可能会被重复。但我需要有关实施此方案的方法的指导。我在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 操作。简而言之,所有局部视图都应该独立于彼此的动作。只有各自的局部视图才会受到某些动作的影响。

4

1 回答 1

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>
于 2012-08-23T06:14:37.003 回答