Asp.net mvc MVC中的刷新用户控件

Asp.net mvc MVC中的刷新用户控件,asp.net-mvc,Asp.net Mvc,我在MVC应用程序的aspx页面中有3个用户控件。 我从一个控制器绑定数据库中的数据 在选择“过滤器/状态”时,我希望将数据(刷新)绑定到“列表”用户控件,而不刷新“过滤器和状态”用户控件 下面是我在aspx页面中的用户控件。 请帮助我如何刷新部分页面/用户控件 我尝试只返回“ListView”视图数据。但它正在搜索其他两个视图&抛出异常 <td> <%Html.RenderPartial("Filter", ViewData

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

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

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

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

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

像这样做

  • html(aspx页面):
  • 您的控制器:

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

  • 我将使用专用模型代替ViewData[“ListingView”],但这只是一个示例。它应该可以工作。

    jQuery和ajax是您的选择吗?您可以添加一个返回JSON的控制器操作并用它填充列表。jQuery与MVC捆绑在一起,它的集成(就像我迄今为止看到的任何web项目中一样)几乎是完美的。我的操作将在一个用户控件中,我必须根据第一个用户控件中的选择将数据绑定到其他用户控件中。如何使用JSON实现这一点?如果控件和刷新操作是真正自包含的(与包含页面的其余部分分离),那么您甚至可以在控件标记中包含脚本和触发器。
     $('#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);
            }
        });
    });
    
    [HttpGet]
    public ActionResult GetListingView(int statusId)
    {
         ViewData["ListingView"] = your data filtered by statusId or what you want;
        return PartialView("List",ViewData["ListingView"]);
    }