2015-02-10 44 views
0

当我更新数据库中的行我得到这个错误:http://snag.gy/975mW.jpg内部服务器错误500个angularjs,MVC HttpPost

因为它是一个500错误我猜测它的东西,在我的C#代码给我这个错误,奇怪的是数据库被更新并且没有崩溃。所以我想知道我该如何调试这个错误?我将数据从角度发送到web api。

$scope.editUser = function() { 
      var user = $scope.selectedUser; 
      UserService.editUser(user).success(function (data) { 
       console.log('Updated', data) 
      }). 
      error(function() { 
       $scope.error = console.log('Something went wrong') 
      }); 
     } 


    [HttpPost] 
    public User EditUser([FromBody]EditUserModel model) 
    { 
     var editedUser = db.Users.FirstOrDefault(u => u.UserID == model.UserID); 

    editedUser.FirstName = model.FirstName; 
    editedUser.LastName = model.LastName; 
    editedUser.Email = model.Email; 

    db.SaveChanges(); 
    return editedUser; 
} 
+0

如果您将其返回到角度,您可能想要将editedUser序列化为json。 – Sefa 2015-02-10 08:08:37

+0

你在控制台日志中看到更新吗? – SBirthare 2015-02-10 08:18:39

+0

你可以在服务器端代码中尝试一下,看看它是否不抛出异常。 – SBirthare 2015-02-10 08:19:33

回答

1

根据您的描述,这是返回值的序列化问题。尝试在Visual Studio调试器下运行服务器端Web应用程序,验证异常设置是否设置为中断所有托管的异常,从浏览器启动操作并查看会发生什么。

+0

嗯,这给了我:“第一次机会例外在Newtonsoft.Json.dll中发生类型'Newtonsoft.Json.JsonSerializationException' 附加信息:检测到属性'表'的类型为'System.Data.Entity.DynamicProxies.Company_7CD5FDAE1E9570C7B1ECAE3417643B51ED95CF06F24DC409AC96D9FE'的自回参考循环。“Path'tableName.rowName [0 ]'”。猜猜我会考虑这一点。 – howDisWorks 2015-02-10 09:26:23

+0

使用谷歌搜索该错误给了我一些输入,我最终添加了“configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;” 到我之前删除的WebApiConfig,因为它给我带来麻烦。添加停止给我500内部服务器错误,但.success功能仍然不运行(应该说'更新')。编辑:测试几次后,该网站最终崩溃说:未知的模块中发生未处理的类型'System.AccessViolationException'的异常。 – howDisWorks 2015-02-10 09:51:27