この問題に何時間も立ち往生しています...ループ内で$.getを使用することとその非同期性に関係があると思いますが、私には理解できません。
このコードは、$。get行のfirebugを介してブレークポイントを追加した場合は機能しますが、実行しただけでは機能しません。
基本的に、ページが読み込まれたときに20個の非表示フィールドをループして、値に基づいてドロップダウンリストの値を設定したいと思います。
for (i = 1; i <= 21; i++) {
var sMessageTypeID = $('#MessageOrder' + i).val();
//This line calls the Controller and populates the corresponding MessageType Drop down
$.get('@Url.Action("GetMessageTypeByMessageTypeID")', { MessageTypeID: sMessageTypeID }, function (data) {
$('#MessageTypes' + i).val(data);
});
};
これがコントローラーコードです
public JsonResult GetMessageTypeByMessageTypeID(long MessageTypeID)
{
tblMessageType tblMessageType = db.tblMessageTypes.Single(t => t.MessageTypeID == MessageTypeID);
return Json(tblMessageType.MessageType, JsonRequestBehavior.AllowGet);
}