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;
}
ajax呼び出しが完了する前に(ajaxがasyncである)ドロップダウンリストを 'data'にバインドします。成功コールバックでバインドする必要があります –
この質問は明確ではありません。 'データ'の中にあなたのオブジェクトを 'Stringfy'する必要はないと知っていますか? 'data'はオブジェクトを喜んで受け入れることができます。 – Liam
'$( '#drplist')。appendTo(container)'が 'success'コールバックの外側に置かれているので、DDLはバインドされません。また、 'JSON.stringify'は不要です... –