2017-10-05 7 views
0

MVCで新しく、ページがロードされたときにドロップダウンリストをバインドしたいのですが、コントローラのフラグを送って、リストを送り返すフラグをドロップダウンしたいリストには、が、ページのロードが、それはフラグを送信しないときに問題があり、コントローラに直接行くajaxはページロード後にトリガーされません

私の見解:

$(document).ready(function() { 
      var flg_parkList = "s"; 

      debugger; 

      $.ajax({ 

       dataType: "json", 
       type: "POST", 
       url: "@Url.Action("parkList","Ranking")", 
       contentType: "application/json; charset=utf-8", 
       data: JSON.stringify({ "flg": flg_parkList }), 
       success: function (data) { 
        debugger; 


       } 

      }); 
      $('#drplist') 
      .appendTo(container) 
      .kendoDropDownList({ 
       dataSource: data, 
       dataTextField: "Text", 
       dataValueField: "Text", 
       valuePrimitive: true, 

      }); 

     }); 

マイコントローラ:

public JsonResult parkList(string flg) 
    { 
     string useID = HttpContext.User.Identity.Name; 
     if (flg == "s") 
     { 

      var listOfParks = (from s in DB.MasterDatas 
           join m in DB.UsersTurbines 
           on s.turbine_id equals m.tur_id 
           where m.user_id == useID 
           select new SelectListItem 
           { 
            Text = s.turbine_windpark_name 
           }).ToList().Distinct(); 

      return Json(listOfParks, JsonRequestBehavior.AllowGet); 
     } 
     else 
      return null; 

    } 
+2

ajax呼び出しが完了する前に(ajaxがasyncである)ドロップダウンリストを 'data'にバインドします。成功コールバックでバインドする必要があります –

+0

この質問は明確ではありません。 'データ'の中にあなたのオブジェクトを 'Stringfy'する必要はないと知っていますか? 'data'はオブジェクトを喜んで受け入れることができます。 – Liam

+0

'$( '#drplist')。appendTo(container)'が 'success'コールバックの外側に置かれているので、DDLはバインドされません。また、 'JSON.stringify'は不要です... –

答えて

1

私はあなたがドンと思います」 ajaxが必要です。あなたはViewBagであなたの問題を解決することができ、コード

http://www.compilemode.com/2016/01/bind-dropdownlist-using-viewbag-in-asp-net-mvc.html

のこの作品を見てください。しかし、あなたがajaxを使いたいなら、google ==> "Asp.net MVCでajaxを使ってドロップダウンリストを埋め込む方法"でこれを検索することができます。 D

関連する問題