C# 500(内部服务器错误)ASP.Net MVC 5 c

C# 500(内部服务器错误)ASP.Net MVC 5 c,c#,asp.net,asp.net-mvc,entity-framework,C#,Asp.net,Asp.net Mvc,Entity Framework,当我试图保存一个对象时,我不断收到错误500内部服务器错误。我似乎找不到任何方法来检查确切的错误可能是什么 我试图通过API控制器保存一个对象,然后在完成时返回该对象。我可以返回一个字符串,然后错误就消失了,我相信我可以找到一种方法让它为我工作,但这似乎是一种解决简单问题的肮脏方法 对象保存得很好,它只是在通过我的控制器运行后不断抛出错误 这是我的API调用: self.postCategory = function (data) { return $.ajax({ url: '/API

当我试图保存一个对象时,我不断收到错误500内部服务器错误。我似乎找不到任何方法来检查确切的错误可能是什么

我试图通过API控制器保存一个对象,然后在完成时返回该对象。我可以返回一个字符串,然后错误就消失了,我相信我可以找到一种方法让它为我工作,但这似乎是一种解决简单问题的肮脏方法

对象保存得很好,它只是在通过我的控制器运行后不断抛出错误

这是我的API调用:

self.postCategory = function (data) {
return $.ajax({
    url: '/API/Category/',
    type: 'POST',
    dataType: 'json',
    data: ko.toJSON(data),
    contentType: 'application/json; charset=urf-8',
    success: function (data) {
        self.getAlert('sucessfully saved category', 1);
        self.Category(data);
    },
    error: function (error) {
        self.getAlert(error, 4);
    }
});
}
这是处理呼叫的控制器:

public Category Post([FromBody]Category category)
{
using (MyContainer db = new MyContainer())
{
    if (db.Categories.Where(n => n.Id == category.Id).Any())
    {
        db.Categories.Attach(category);
        db.Entry<Category>(category).State = EntityState.Modified;
    }
    else
    {
        db.Categories.Add(category);
    }
    try
    {
        db.SaveChanges();
        return category;
    }
    catch (Exception e)
    {
        Elmah.ErrorSignal.FromCurrentContext().Raise(e);
        return new Category();
    }
}
}
这似乎只发生在具有一对多关系中与其相关的记录的类别上。没有相关记录的新类别或对类别的更新没有相同的问题

这对我来说再也没有意义了

任何帮助都将不胜感激


谢谢大家!

问题在于我的击倒绑定

这:

应该是这样的:

function CategoryModel(data) {
    var self = this;

    self.Id = data.Id;
    self.Name = ko.observable(data.Name);

    self.ProductModels = ko.observableArray([]);
}
在my.edmx中,默认情况下,我将实体之间的关联命名为产品和类别。然后,当我打电话时,它会发送产品类别,对类别进行更新,然后返回包含复杂对象的类别。这对webapi是有害的,因此出现了500错误

解决方案:将你的observableArray按字面意思命名,而不是将其命名为与协会相同的名称


谢谢你的帮助

您正在使用Elmah,但尚未共享错误日志。艾玛说什么?艾玛没什么可说的,因为它通过了我的试捕。代码可以工作,但无论出于何种原因,它都会返回该错误。
function CategoryModel(data) {
    var self = this;

    self.Id = data.Id;
    self.Name = ko.observable(data.Name);

    self.ProductModels = ko.observableArray([]);
}