をコントローラへのモーダルダイアログからパラメータを渡す私はイムは、このようなコントローラにパラメータを渡すMVC3でモーダルダイアログがあります。アヤックス
$("#SelectedCSIDivisionCodes").live("click", function() {
var ID = $(this).val();
$.ajax({
type: "GET",
url: '@Url.Action("GetCSICodes", "CSICodes")',
data: { divisionID: ID },
dataType: "json",
error: function (xhr, status, error) {
alert(xhr);
alert(status);
alert(error);
// you may need to handle me if the json is invalid
// this is the ajax object
},
success: function (json) {
alert("Data Returned: " + json);
}
});
// $.getJSON(, { divisionID: ID }, function (data) {
// alert(data);
// });
});
をそして私はこのようなパラメータを受信しています:
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult GetCSICodes(string divisionID)
{
int ID = Convert.ToInt32(divisionID);
var csiCodes = (from c in EFProject.CSICode
where c.DivisionID == ID
select c).OrderBy(x => x.CSICodeID);
List<SelectListItem> codes = new List<SelectListItem>();
foreach (var code in csiCodes)
{
codes.Add(new SelectListItem { Value = code.CSICodeID.ToString(), Text = code.Code + " " + code.Name });
}
return Json(codes.AsEnumerable(), JsonRequestBehavior.AllowGet);
}
ajax呼び出しは正常に機能しますが、コントローラのパラメータ値を検出しません。言い換えれば、私はコントローラ内の変数divisionIDでnullになっています。私はイムが値を設定するかどうかを確認するためのFirefoxを使用し、このURLを返すので、それはそれをやっているようだ: GET http://localhost:1925/CSICodes/GetCSICodes?divisionID%5B%5D=2 [HTTP/1.1 200 OK 95690ms]間違っている可能性が何の
任意のアイデア?
URLはdivisionID = 2ではなくdivisionID [] = 2で終わる必要があります。あなたはあなたのjavascriptでそれをデバッグするとき、IDは何を同等ですか? – DMulligan
コントロールはListBoxForヘルパーです。私が警告($(this).val())をすると、例えば2のような数字が得られます。私は本当にFirefoxでそれをデバッグする方法を知らない。 –
私は、IDが設定された後(あなたのajax呼び出し)に行にブレークポイントを置き、次にどのIDが設定されているか調べます。あなたが記述したURLは、IDが2つに設定された1つの値を持つ配列であると考えた場合に起こります。 – DMulligan