我對MVC相當陌生,我有一個函數可以覆蓋提交按鈕上的默認事件,我會根據提交表單更新部分視圖。它工作得很好。然後它停止工作。我唯一改變的是我爲datepicker(IE 9)添加了一些webshim的東西。我試着評論這一點,沒有任何評論。我在ajax調用中放置了一個錯誤函數,果然,由於某種原因,調用失敗。下面是我的Ajax調用:如何使用錯誤函數有效調試mvc ajax調用?
<script>
$(document).ready(function() {
$("#DropDownForm").on("submit", function (event) {
//Prevent default action on the drop down submit form
event.preventDefault();
var form = $(this);
var Project = $('#ProjectDropDown').val();
var Release = $('#ReleaseDropDown').val();
//Instead run this function - find Release and update table
$.ajax({
url: form.attr("action"),
//async: false,
method: form.attr("method"),
data: form.serialize(),
error: function (exception) { alert(exception + "\n" + form.serialize() + "\n" + form.attr("action") + "\n" + form.attr("method")) }
})
.done(function (result) {
$("#ReleaseTableBodyForm").empty();
$("#ReleaseTableBodyForm").html(result +
'<br/><div><button style=\"text-align:center\">Submit</button></div>');
});
});
});
</script>
的形式被引用:
@using (Html.BeginForm("LoadRelease", "Home", FormMethod.Post, new { id = "DropDownForm", style = "" }))
{
@*Dropdowns*@
<select id="BusinessAreaDropDown" name="BusinessArea" onchange="javascript: FillGenericProject(); FillProject(); FillReleases();" style="width: 11em;">
@Html.Partial(@"Dropdowns\_BusinessArea", Model.ProjectViewModels);
</select>
<select id="GenericProjectDropDown" name="GenericProject" onchange="javascript: FillProject(); FillReleases();" style="width: 11em;"></select>
<select id="ProjectDropDown" name="Project" style="width: 18em;" onchange="javascript: FillReleases();"></select>
<select id="ReleaseDropDown" name="Release" style="width: 11em;"></select>
<button type="submit" id="GoButton" style="visibility:hidden;">Go</button>
}
而且它在叫得很開心,直到最近控制器(在HomeController.cs)
[HttpPost]
public ActionResult LoadRelease(string Project, string Release)
{
var ProjectID = _ProblemReportsDB.ProjectMaps
.Where(r => r.Project == Project)
.Select(r => r.ID).FirstOrDefault();
ViewBag.Project = Project;
var Releases = from row in _ProblemReportsDB.PlannedOpenCloses
where (row.Project == ProjectID && (Release == null || row.Release == Release))
select row;
return PartialView("_TableBody", Releases.ToList());
}
我只是不知道如何調試ajax調用。
錯誤調用輸出這樣的:
[object Object]
BusinessArea=Test1&GenericProject=Test2&Project=Test3&Release=Create+New+Release
/Home/LoadRelease
post
所有這一切是正確的。只是簡單地失敗。有什麼方法可以從ajax錯誤參數中獲取更多信息嗎? [對象對象]對我來說是無用的。
不確定,但你是否也改變了返回類型?如果我沒有錯,它應該返回Json(Releases.ToList()); – LiranBo
@LiranBo返回類型也可以是html,我可以指定html作爲數據類型,但仍然失敗。它甚至不試圖運行C#函數。 – Aserian