2

我的 MVC 应用程序的 aspx 页面中有 3 个用户控件。我从一个控制器绑定数据库中的数据。

在选择“过滤器/状态”时,我想将数据(刷新)绑定到“列表”用户控件,而不刷新“过滤器和状态”用户控件。

下面是我在 aspx 页面中的用户控件。请帮助我如何刷新部分页面/用户控件。

我试过只返回“ListView”视图数据。但它正在搜索其他 2 个视图并抛出异常。

          <td>
                <%Html.RenderPartial("Filter", ViewData["FilterView"]); %>
            </td>

            <td valign="top" width="15%">
                <%Html.RenderPartial("Status", this.ViewData["StatusView"]); %>

            </td>
            <td valign="top" width="85%">

                <%Html.RenderPartial("List", this.ViewData["ListingView"]); %>

            </td>
4

1 回答 1

1

这样做

  1. html(aspx页面):
   <div id="ListingView">
    <%Html.RenderPartial("List", this.ViewData["ListingView"]); %>
    </div>
    ...
    <input type="button" id="refreshListingView" />
  1. javascript来处理它:

     $('#refreshListingView').click(function () {
        var selectedStatusId = 'get here proper status id';
        $.ajax({
            url: '/YourController/GetListingView',
            type: "GET",
            data: { "statusId": selectedStatusId },
            success: function (response) {
                $('#ListingView').html(response);
            }
        });
    });
    
  2. 你的控制器:

    [HttpGet]
    public ActionResult GetListingView(int statusId)
    {
         ViewData["ListingView"] = your data filtered by statusId or what you want;
        return PartialView("List",ViewData["ListingView"]);
    }
    

我会使用专用模型而不是 ViewData["ListingView"],但这只是一个示例。它应该工作。

于 2012-11-10T12:37:58.143 回答