을 컨트롤러 곳처럼 컨트롤러에 매개 변수를 전달 메신저 :전달 매개 변수는 내가 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);
}
을
아약스 호출이 제대로 작동하지만 컨트롤러에서 매개 변수 값을 감지하지 못합니다. 즉, 컨트롤러에서 변수 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가되어야합니다. ID가 자바 스크립트에서 디버그 할 때 평등 한 것은 무엇입니까? – DMulligan
컨트롤은 ListBoxFor 도우미입니다. 내가 경고 ($ (this) .val()) 할 때 나는 2와 같은 숫자를 얻는다. 파이어 폭스에서 디버깅하는 방법을 모른다. –
ID가 설정되고 (당신의 ajax 호출) 라인에 중단 점을 배치 한 다음 어떤 ID가 설정되었는지 조사 할 것입니다. 당신이 설명하는 URL은 ID가 2로 설정된 값 하나를 가진 배열이라고 생각한다면 어떻게 될 것입니다. – DMulligan