0

//こんにちは、プログラムのリストがあり、各プログラムがアウトレットのリストに関連付けられているMVC4プロジェクトを構築しています。ユーザーがドロップダウンリストからプログラムを選択すると、アウトレットのテーブルを表示しようとしています。選択が変更されるたびに起動するjQuery関数と、そのプログラムIDを取得できる..素晴らしいですが、そのプログラムに関連付けられたアウトレットをテーブルに入力するためにajax呼び出しを行うにはどうすればよいですか

私はアウトレットテーブルの描画を担当する部分ビューを持っています.私がする必要があるのは、私のjQuery関数から私のコントローラの関数へのajax呼び出しを行い、この場合はvar $input = $(this).find('option:selected').val();

コントローラ

 public ActionResult AddOutletFromExisting()
    {
        int selectedValue = 0;

        ViewBag.Programs = new SelectList(new ProgramRepository().GetPrograms(), "ProgramID", "ProgramName", selectedValue);
        return View();
    }
 [HttpPost]
    public ActionResult AddOutletFromExisting(FormCollection collection, int selectedValue=0)
    {
        var outlets = new OutletRepository().GetStoresByProgram(selectedValue).ToPagedList(1, 10);
        return PartialView("_Outlets", outlets);
    }

意見

    @Html.DropDownList("ProgramID", (SelectList)ViewBag.Programs, string.Empty, new { id="dropdown" })

jQuery

$("#dropdown").change(function () {
    var $input = $(this).find('option:selected').val();
    //call a function in my controller and pass $input to this function
});
4

2 に答える 2

1

ドロップダウン値に基づいてグリッドをフィルター処理したいですよね?
そのためには、以下の手順に従う必要があります。

  1. パラメーターに基づいて結果をフィルター処理するコントローラー アクションを作成します (これは ajax 呼び出しから取得されます。次のステップで確認します)。
  2. このアクションのビューを作成します。テーブルのコードが含まれます
  3. jQuery ajax/post メソッドを使用してアクション メソッドを呼び出す
  4. グリッド コンテンツを更新する

これは、ASP.NET MVC でのデータ グリッドのリンク フィルタリングで、例で説明しています。

アップデート

$("#dropdown").change(function () {
    var selectedValue = $(this).find('option:selected').val();
    //call a function in my controller and pass $input to this function
    $.ajax({
       url:"/Controller/GridFilterActionMethod",
       type: "POST",
       data: { selectedValue: selectedValue },
       success:function(result){
           $("#div1").html(result); //here, div1 would be your grid-div id
       }
    });
});

上記のコードに従って、アクション メソッドのパラメーター名はselectedValuejson オブジェクト名と一致する必要があります。

于 2013-07-24T15:30:52.310 に答える