2

MVC アプリケーションの aspx ページに 3 つのユーザー コントロールがあります。1 つのコントローラーから DB のデータをバインドします。

「フィルター/ステータス」の選択で、「フィルターとステータス」ユーザーコントロールを更新せずに、データを「リスト」ユーザーコントロールにバインド(更新)したい。

以下は、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 に答える