C# Jquery和ASP.NET对.NET的ajax调用给出了500个错误

C# Jquery和ASP.NET对.NET的ajax调用给出了500个错误,c#,jquery,asp.net,ajax,C#,Jquery,Asp.net,Ajax,我创建了这样一个对象: 对象{ABC-123:“XYZ”,ABC-112:“LAX”} 我正试图将该对象发送到.NET,但我收到一个500错误,以下是我发送该对象的方式: $.ajax({ type: "POST", url: "/vendorProject/api/connection/updateVendorItem", data: JSON.stringify(editObject), con

我创建了这样一个对象:

对象{ABC-123:“XYZ”,ABC-112:“LAX”}

我正试图将该对象发送到.NET,但我收到一个500错误,以下是我发送该对象的方式:

 $.ajax({
            type: "POST",
            url: "/vendorProject/api/connection/updateVendorItem",
            data: JSON.stringify(editObject),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                alert('success');
            },
            failure: function (errMsg) {
                alert('failed');
            }
        });
变量editObject是上面的对象。我认为这部分不是问题所在

我正在将其发送到ASP.NET中的此控制器:

public List<VendorUpdateClass> updateVendorItem(string[] edittedItems)
        {
            ConnectionClass jobs = new ConnectionClass();
            return jobs.updateVendors(edittedItems);
        }
公共列表更新项目(字符串[]EditedItems)
{
ConnectionClass作业=新的ConnectionClass();
返回作业。更新作业(EditedItems);
}
然后将其发送到这个类:

public List<VendorUpdateClass> updateVendors(string[] items)
        {
            VendorUpdateCell = new List<VendorUpdateClass>();

            VendorUpdateClass vendorUpdatedItem = new VendorUpdateClass();

            for (int i = 0; i < items.Length; i++ ){
                vendorUpdatedItem.job = items[i];
                vendorUpdatedItem.task = items[i];
                vendorUpdatedItem.vendor = items[i];

                VendorUpdateCell.Add(vendorUpdatedItem);
            }

            return VendorUpdateCell;
        }
public List updateVendors(字符串[]项)
{
VendorUpdateCell=新列表();
VendorUpdateClass VendorUpdateItem=新VendorUpdateClass();
对于(int i=0;i
现在,当我从类中删除循环时,这里有一些有趣的事情,看起来是这样的:

public List<VendorUpdateClass> updateVendors(string[] items)
        {
            VendorUpdateCell = new List<VendorUpdateClass>();

            VendorUpdateClass vendorUpdatedItem = new VendorUpdateClass();

            //for (int i = 0; i < items.Length; i++ ){
                vendorUpdatedItem.job = "aaa";
                vendorUpdatedItem.task = "bbb";
                vendorUpdatedItem.vendor = "ccc";

                VendorUpdateCell.Add(vendorUpdatedItem);
            //}

            return VendorUpdateCell;
        }
public List updateVendors(字符串[]项)
{
VendorUpdateCell=新列表();
VendorUpdateClass VendorUpdateItem=新VendorUpdateClass();
//对于(int i=0;i
这并没有给我一个500错误,事实上我从ajax调用中得到了成功警报。所以我假设我在.NET中循环我的对象是错误的,有人有什么建议吗

我期望的是
vendorUpdateItem.job
等于ABC-123,
vendorUpdateItem.task
等于ABC-123和
vendorUpdateItem.vendor
等于XYZ(无论如何,对于第一项)

还有一个问题…我无法调试我的.NET代码,因为我的IIS不工作

但以下是我从网络电话中得到的回应:

{“Message”:“出现错误。”,“ExceptionMessage”:“对象引用未设置为对象的实例。”,“ExceptionType”:“System.NullReferenceException”,“StackTrace”:“位于VendorProject.Models.ConnectionClass.UpdatenDors(字符串[]项)\r\n位于lambda_方法(闭包,对象,对象[])\r\n位于System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.c__DisplayClass10.b_u 9(对象实例,对象[]方法参数)\r\n位于System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext,IDictionary2参数,CancellationToken CancellationToken)\r\n---从引发异常的上一个位置开始的堆栈结束跟踪----\r\n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务任务)\r\n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务任务任务)\r\n在System.Runtime.CompilerServices.TaskAwaiter1.GetResult()\r\n位于System.Web.Http.Controllers.ApiControllerActionInvoker.d\u 0.MoveNext()\r\n---来自引发异常的上一个位置的堆栈结束跟踪----\r\n位于System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务任务)\r\n位于System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n位于System.Runtime.CompilerServices.TaskAwaiter1.GetResult()\r\n位于System.Web.Http.Controller.ActionFilterResult.d\uu 2.MoveNext()\r\n---来自引发异常的上一个位置的堆栈结束跟踪----\r\n位于System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\r\n位于System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n位于System.Runtime.CompilerServices.TaskAwaiter1.GetResult()\r\n位于System.Web.Http.Controllers.AuthenticationFilterResult.d_0.MoveNext()\r\n---从引发异常的上一个位置开始的堆栈结束跟踪----\r\n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务任务)\r\n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务任务任务)\r\n在System.Runtime.CompilerServices.TaskAwaiter1.GetResult()\r\n位于System.Web.Http.Dispatcher.HttpControllerDispatcher.d_u1.MoveNext()“}


您的Javascript对象应该如下所示:

var vendorUpdatLists= [ { job: "ABC-123", task: "XYZ" },  { job: "ABC-333", task: "LAX" }];
您的方法定义应该如下所示:

public List<VendorUpdateClass> updateVendors(List<VendorUpdateClass> vendorUpdateItems) {
  // It's time to use the list!
  if (vendorUpdateItems != null && vendorUpdateItems.Count() > 0) {
    string job = vendorUpdateItems[0].job; // ABC-123
    string task = vendorUpdateItems[0].task; // XYZ
  }
}

您的Javascript对象应该如下所示:

var vendorUpdatLists= [ { job: "ABC-123", task: "XYZ" },  { job: "ABC-333", task: "LAX" }];
您的方法定义应该如下所示:

public List<VendorUpdateClass> updateVendors(List<VendorUpdateClass> vendorUpdateItems) {
  // It's time to use the list!
  if (vendorUpdateItems != null && vendorUpdateItems.Count() > 0) {
    string job = vendorUpdateItems[0].job; // ABC-123
    string task = vendorUpdateItems[0].task; // XYZ
  }
}

您的Javascript对象应该如下所示:

var vendorUpdatLists= [ { job: "ABC-123", task: "XYZ" },  { job: "ABC-333", task: "LAX" }];
您的方法定义应该如下所示:

public List<VendorUpdateClass> updateVendors(List<VendorUpdateClass> vendorUpdateItems) {
  // It's time to use the list!
  if (vendorUpdateItems != null && vendorUpdateItems.Count() > 0) {
    string job = vendorUpdateItems[0].job; // ABC-123
    string task = vendorUpdateItems[0].task; // XYZ
  }
}

您的Javascript对象应该如下所示:

var vendorUpdatLists= [ { job: "ABC-123", task: "XYZ" },  { job: "ABC-333", task: "LAX" }];
您的方法定义应该如下所示:

public List<VendorUpdateClass> updateVendors(List<VendorUpdateClass> vendorUpdateItems) {
  // It's time to use the list!
  if (vendorUpdateItems != null && vendorUpdateItems.Count() > 0) {
    string job = vendorUpdateItems[0].job; // ABC-123
    string task = vendorUpdateItems[0].task; // XYZ
  }
}

在失败部分添加以下代码,并尝试找出确切的错误消息:。失败(函数(xhr,textStatus,errorhown){//errorhown中返回了什么?});虽然我不一定认为它会导致错误,但您最初的循环代码是更新同一个对象,并在每个数组元素中放置对同一个对象的引用。在这种结构中,每次迭代都需要一个“新”的VendorUpdateClass;虽然我不一定认为它会导致错误,但您最初的循环代码是更新同一个对象,并在每个数组元素中放置对同一个对象的引用。在这种结构中,每次迭代都需要一个“新”的VendorUpdateClass