我試圖讓我的Ajax.BeginForm運行功能的onSuccess,但我一直在螢火收到錯誤消息:MVC Ajax.BeginForm的onSuccess函數沒有定義
UpdateProjectDiv is not defined
return Function.constructor.apply(null, argNames);
這裏的形式是什麼樣子:
<script type="text/javascript">
$(document).ready(function() {
function UpdateProjectDiv() {
var projid = $("#ddlProjectsManage").val();
$.post("/Manage/ProjectEmployeeList/", { projectid: projid }, function (data) {
populateDiv($("#divProjectsToFill"), data);
});
}
function populateDiv(div, data) {
div.html('');
div.append(data);
}
});
</script>
@using (Ajax.BeginForm("MoveToProject", new AjaxOptions { UpdateTargetId = "divAllEmployeesToFill", OnSuccess = "UpdateProjectDiv" }))
{
[insert non-relevant code here]
<input id="btnMoveEmpsToProject" type="submit" value=">>" />
@Html.Hidden("SelectedProjectID","9999999999999")
}
和我的控制器動作:
[HttpPost]
public ActionResult MoveToProject(UnassignedEmployeeBindingModel model, int selectedprojectId)
{
var tempteam = _db.SpecTeams.SingleOrDefault(s => s.Name == "N/A" && s.ProjectId == selectedprojectId);
try
{
foreach (var employee in model.UnassignedEmployees)
{
var employeeObj = _db.Employees.SingleOrDefault(e => e.Id == employee.Employee.Id);
if (employee.IsSelected)
{
employeeObj.SpecTeamId = tempteam.Id;
_db.SaveChanges();
}
}
return RedirectToAction("UnassignedEmployeeList");
}
catch (Exception)
{
return RedirectToAction("Index");
}
}
沒有OnSucess它工作正常的代碼,但它做esn't自動刷新另一個部分(#divProjectsToFill)中的div。
此外,它似乎尋找jquery.unobtrusive-ajax.js文件中的函數UpdateProjectDiv而不是頁面本身。我想我可能能夠在該文件中添加我的功能(雖然我還沒有嘗試過),但這聽起來不是一個合適的解決方案。
謝謝!
你嘗試定義'$(文件)。就緒()'之外的(JavaScript)的功能? – 2011-04-05 21:16:28
簡直不敢相信......謝謝!把它作爲答案,以便我可以將其標記爲已解決。 :) – LanFeusT 2011-04-05 21:22:36