我目前遇到的问题是我的AngularJs服务在连接到MVC控制器时触发了错误。
我的代码如下:
调用服务的AngularJs Controller函数:
$scope.SubmitChangeForm = function () {
$scope.submitted = true;
ChangeForm.submitapplication($scope.application,
function (data) {
$scope.submissionCompleted = true;
},
function (data) {
$scope.errorOccurred = true;
}
);
};
ChangeForm服务:
angular.module('app')
.service('ChangeForm', function ($http) {
return {
submitapplication: function (application, success, error) {
var data = { "app": application };
$http.post('/applicant/submitapplication', data).success(success).error(error);
},
sendschoolemail: function (serviceId, success, error) {
var data = { "ServiceId": serviceId };
$http.post('/email/emailschool', data).success(success).error(error);
},
sendstudentemail: function (serviceId, success, error) {
var data = { "ServiceId": serviceId };
$http.post('/email/emailstudent', data).success(success).error(error);
}
}
});
ApplicantController(MVC控制器):
[Route("submitapplication"), System.Web.Mvc.HttpPost]
public ActionResult SubmitApplication(Applicant app)
{
//ModelState.AddModelError("Test", "Test Error");
if (!ModelState.IsValid)
{
var messages = GetModelMessages(ModelState);
LogError(messages);
Response.StatusCode = 500;
return new JsonResultView("Error occurred", JsonRequestBehavior.AllowGet);
}
try
{
app.DateSubmitted = System.DateTime.Now;
var success = _layer.AddApplicant(app);
if (success)
{
SendEmails(app);
}
else
{
Response.StatusCode = 500;
LogError("Error occurred writing to database");
return new JsonResultView("Error occurred", JsonRequestBehavior.AllowGet);
}
return new JsonResultView(success, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
LogError(ex.ToString());
Response.StatusCode = 500;
return new JsonResultView("Error occurred", JsonRequestBehavior.AllowGet);
}
}
周围的Try / Catch是出于某种原因查看控制器根目录是否发生了错误。
表单大部分时间都有效,但有时AngularJs Controller正在处理错误(触发$ scope.errorOccurred = true;行),并且MVC控制器没有记录错误。这会告诉我它正试图调用MVC控制器,但由于某种原因失败。
任何人都可以看到可能导致此问题的原因吗?我对AngularJS和客户端脚本相对较新,所以它可能是非常微不足道的。
我的一位同事设法解决了错误,但日志中没有出现任何内容。我让他以完全相同的表格内容重复提交,这次是有效的。
任何提示都将不胜感激!