Jquery Ajax调用导致内部服务器错误

Jquery Ajax调用导致内部服务器错误,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我进行了jqueryajax调用,调用了action方法并返回数据,但结果是内部服务器错误 你能解释一下这个问题吗 代码如下: $.ajax({ url: "/Post/GetFieldInformation", data: { feedID: feedID, asUserID: $('#AsUserID').val(), fieldHandled: @Html.Raw(JsonConvert.SerializeObject(Model.FieldHandled)) },

我进行了jqueryajax调用,调用了action方法并返回数据,但结果是内部服务器错误

你能解释一下这个问题吗

代码如下:

$.ajax({
    url: "/Post/GetFieldInformation",
    data: { feedID: feedID, asUserID: $('#AsUserID').val(), fieldHandled: @Html.Raw(JsonConvert.SerializeObject(Model.FieldHandled)) },
    type: 'GET',
    dataType: "json",
    contentType: 'application/json; charset=utf-8',
    success: function (mydata) {
        alert("success");
    },
    error: function (request, status, error) {
        alert(error);
    }
});
行动方法:

[HttpGet]
public JsonResult GetFieldInformation(string feedID, int asUserID, Dictionary<int, bool> fieldHandled)
{
    FieldInformation result = new FieldInformation();
    string[] feedIDs = new string[] { feedID };
    result.Fields = dr.UserFields(this.RequestCultureID, asUserID, feedIDs, new string[0], !base.CurrentUserSessionInfo.FeatureAllOptionalFields);
    result.SpecificFields = result.Fields.Where(p => p.Key > 1000 && p.Value.FeedUsing == 1 && !fieldHandled.ContainsKey(p.Key)) 
        .OrderBy(p => p.Value.SortOrder).ThenBy(p => p.Value.FieldTypeID).ThenBy(p => p.Value.FieldLabel);

    return Json(result, JsonRequestBehavior.AllowGet);
}
[HttpGet]
公共JsonResult GetFieldInformation(字符串feedID、int asUserID、字典fieldHandled)
{
FieldInformation结果=新的FieldInformation();
字符串[]feedID=新字符串[]{feedID};
result.Fields=dr.UserFields(this.RequestCultureID、asUserID、FeedId、新字符串[0]、!base.CurrentUserSessionInfo.FeatureAllOptionalFields);
result.SpecificFields=result.Fields.Where(p=>p.Key>1000&&p.Value.FeedUsing==1&&!fieldHandled.ContainsKey(p.Key))
.OrderBy(p=>p.Value.SortOrder).ThenBy(p=>p.Value.FieldTypeID).ThenBy(p=>p.Value.FieldLabel);
返回Json(结果,JsonRequestBehavior.AllowGet);
}
以下是答复文本: �ZmS�H��U�Z�U���E��qrxo��B�����6.�2.��fF����…�Q��\�9���Z����9�i=ȇ���9C�

以下是ActionMethod返回的内容:

我的猜测是,如果字典为空,则不会序列化。你可能想试试这样的

public JsonResult GetFieldInformation(string feedID, int asUserID, Dictionary<int, bool> fieldHandled = null)
{
    fieldHandled = fieldHandled ?? new Dictionary <int, bool>()
}

调试调用-设置断点-您能得到更具体的错误吗?要么您的内容类型错误,要么您的数据错误<代码>数据:{foo:'bar'}导致发送的是表单参数,而不是json。无需为get Request设置内容类型。不管哪种方式都是错误的,但方法也可能是错误的,;)如果调试、断点和单步执行,是哪一行导致错误?我知道它不是空的,即使是空的,结果对象也有数据。它必须是结果数据。如果我只返回Json(“某物”),它就会成功。但我不知道结果出了什么问题。请查看我更新的问题中的内容。这可能是因为您试图序列化字典,内置json做得不太好。我会在稍后发布答案。如果您有任何其他问题,请告诉我,我很乐意提供帮助
  var json = JsonConvert.SerializeObject( package, new KeyValuePairConverter( ));
  return Json(json , JsonRequestBehavior.AllowGet);