我不明白为什么会这样...一小时前我的行为的返回值将Json数据返回到我的视图并且它正在更新我的ListBox就好......我不知道是什么在地球上发生了...但突然间它只是促使我下载数据......我知道我做了什么,事实上我没有做任何事......我一定做了些什么但是,因为它不再工作!很沮丧......
这是我的视图和Jquery函数......
[HttpPost]
public ActionResult SearchByDemographic1(FormCollection formCollection)
{
SLI.Text = patient.name[0].lastName + ", " + patient.name[0].firstName + " | " + patient.address[0].street1 + " | " + patient.address[0].city + " | " + patient.address[0].country;
SLI.Value = patient.compositeID[0].id + "";
patientList.Add(SLI);
}
ViewData["PatientListToAdd"] = patientList;
//ViewData["POPID"] = PopID;
return Json(patientList, JsonRequestBehavior.AllowGet);
}
$(function () {
$("#DemoGraphSubmit").click(function (e) {
e.preventDefault();
var form = $("#DemoGraphID");
var srlzdform = form.serialize();
var PopID = <% =PopID %>
var options = [];
var serializedForm = form.serialize();
$.post("/PatientACO/SearchByDemographic", formCollection:srlzdform, function (data) {
options = $.map(data, function (item, i) {
return "<option value=" + item.Value + ">" + item.Text + "</option>";
});
$("#PatientListToAdd").html(options.join(""));
});
});
});
答案 0 :(得分:2)
我相信您在JavaScript(检查FireBug)中出现错误导致您的click
事件失败,正常提交表单(并返回JSON响应,而不是调用您的回调函数)。
改变这个:
$.post("/PatientACO/SearchByDemographic", formCollection:srlzdform, function (data) {
options = $.map(data, function (item, i) {
return "<option value=" + item.Value + ">" + item.Text + "</option>";
});
$("#PatientListToAdd").html(options.join(""));
});
对此:
$.post("/PatientACO/SearchByDemographic", srlzdform, function (data) {
options = $.map(data, function (item, i) {
return "<option value=" + item.Value + ">" + item.Text + "</option>";
});
$("#PatientListToAdd").html(options.join(""));
});
违规代码为formCollection:srlzdform
。这不是有效的JavaScript表达式,会导致错误。你的意思可能是{ formCollection:srlzdform }
,但我并不认为是必要的。模型绑定器应该能够弄明白。