1

現在、City と District の 2 つのクラス呼び出しがあります (それぞれ 1 対多の関係)。私の見解では、2 つのドロップダウン リストがあります。都市が選択されたときに、ビュー全体をリロードせずに、地区のドロップダウン リストにその都市の地区のみを表示するようにします。以前に Ajax を使用したことはありましたが、ViewBag ではなく、モデルのデータを再入力するためだけでした。では、Ajax と ViewBag を使用してそれを行うにはどうすればよいでしょうか。

4

2 に答える 2

0

ViewBag 自体を再作成することはできません。

これが最善の方法かどうかはわかりませんが、次の方法で行ったでしょう。

HTML:

 <div>
   <select id="city">
     options
   </select>
 </div>
 <div id="district-select">
    <select>
    </select>
 </div>

JS:

$("#city").change(function() {
   var id = $(this).val();
   $.ajax({
     type: "GET",
     url:"/CONTROLLER/GetDistrictsByCity",
     data: {cityId: id},
    success: function(data) {
       $("#district-select").html(data);
    }
   });
});

アクション:

public ActionResult GetDistrictsByCity(Guid cityId){
   //GET Districts that is linked to the cityId

   return PartialView("_DistrictsByCity", model);

}

ビュー「_DistrictsByCity」では、作成するのはドロップダウンリストだけです。その html が取得され、「district-select」という ID を持つ div 内に配置されます

不明な点があればお知らせください

于 2013-07-27T11:15:17.077 に答える