내가 함수를 실행하는 내 Ajax.BeginForm을 얻으려고 onsuccess는하지만 불을 지르고있는 오류 메시지가 계속이 정의되지 않았습니다 :MVC Ajax.BeginForm onsuccess는 기능이
<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 잘 작동 코드없이, 그것은 할 제외 다른 부분 (#divProjectsToFill)에서 div를 자동으로 새로 고침하지 마십시오.
또한 페이지 자체가 아니라 jquery.unobtrusive-ajax.js 파일에서 UpdateProjectDiv 함수를 찾는 것 같습니다. 그 파일에 내 기능을 추가 할 수 있을지도 모르겠지만 (아직 시도하지는 않았지만) 적절한 해결책처럼 들리지는 않습니다.
감사합니다.
당신은'$ (문서) .ready()'의 외부에서 (자바 스크립트) 함수를 정의하려고 했습니까? –
그게 그렇게 간단하다고 믿을 수 없어 ... 고마워! 답으로 표시하여 해결 된 것으로 표시 할 수 있습니다. :) – LanFeusT