Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调用MVC的目标已引发异常_C#_Json_Ajax_Asp.net Mvc_Asp.net Mvc 5 - Fatal编程技术网

C# 调用MVC的目标已引发异常

C# 调用MVC的目标已引发异常,c#,json,ajax,asp.net-mvc,asp.net-mvc-5,C#,Json,Ajax,Asp.net Mvc,Asp.net Mvc 5,我有一个ajax调用,我需要从我的控制器获取JSON格式的数据列表。我一直得到这个例外 下面是我的ajax调用: $('#button1').click(function (e) { e.preventDefault(); var id= $("#textboxvalue").val(); debugger; var url = "@Url.Action("GetList", "xyz")"; console.log(url); $.ajax({ url: url, type:

我有一个ajax调用,我需要从我的控制器获取JSON格式的数据列表。我一直得到这个例外

下面是我的ajax调用:

$('#button1').click(function (e) {
e.preventDefault();
var id= $("#textboxvalue").val();
debugger;
var url = "@Url.Action("GetList", "xyz")";
console.log(url);
$.ajax({
    url: url,
    type: "GET",
    async: false,
    data: { id: id},
    dataType: "json",
    traditional: true,
    contentType: "application/json; charset=utf-8",
    success: function (data) {
        debugger;
        for (var i in data) {       
        }
    },
    error: function (xhr, ajaxOptions, thrownError) {
        //Always goes to error function
        alert("An error has occured!!!");
    }
});
});
控制器代码:

我可以从ajax中获取参数值,并从db中获取所有值

    [HttpGet]
    public ActionResult GetList(string id)
    {

        var pList = new List<Property>();
        using (var db = new LiensTrackerEntities())
        {

            var recipient = db.Recipients.FirstOrDefault(x => x.id== id);
            //Need to make sure there is an Properties object
            if (recipient != null && 
recipient.RecipientPropertyCollections.Count() != 0)
            {
                List<int> properties = 
recipient.RecipientPropertyCollections.Select(p => p.Property_ID).ToList();

                foreach (var item in properties)
                {
                    Property p1 = db.Properties.FirstOrDefault(u => 
u.PropertyID == item);
                    pList.Add(p1);
                }
// I can see the values in pList on continue it goes to ERROR function in 
Ajax with 500 error
                return Json(pList, JsonRequestBehavior.AllowGet);
            }
        }
        return Json(" No spouse info in Medicaid", 
JsonRequestBehavior.AllowGet);
    }
[HttpGet]
公共操作结果GetList(字符串id)
{
var pList=新列表();
使用(var db=new LiensTrackerEntities())
{
var recipient=db.Recipients.FirstOrDefault(x=>x.id==id);
//需要确保存在属性对象
如果(收件人!=null&&
recipient.RecipientPropertyCollections.Count()!=0)
{
列表属性=
RecipientPropertyCollections.Select(p=>p.Property_ID).ToList();
foreach(属性中的变量项)
{
属性p1=db.Properties.FirstOrDefault(u=>
u、 属性ID==项目);
pList.Add(p1);
}
//我可以看到pList中的值,它在continue中转到ERROR函数
错误为500的Ajax
返回Json(pList,JsonRequestBehavior.AllowGet);
}
}
return Json(“医疗补助中没有配偶信息”,
JsonRequestBehavior.AllowGet);
}
异常消息:

调用的目标已引发异常

异常堆栈跟踪:

   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] 
arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, 
Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags 
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Web.SecurityUtils.MethodInfoInvoke(MethodInfo method, Object target, Object[] args)
   at System.Web.Script.Serialization.JavaScriptSerializer.SerializeCustomObject(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat)
   at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember)
   at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember)
   at System.Web.Script.Serialization.JavaScriptSerializer.SerializeEnumerable(IEnumerable enumerable, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat)
   at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember)
   at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember)
   at System.Web.Script.Serialization.JavaScriptSerializer.SerializeCustomObject(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat)
   at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember)
   at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember)
   at System.Web.Script.Serialization.JavaScriptSerializer.SerializeEnumerable(IEnumerable enumerable, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat)
   at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember)
   at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember)
   at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder output, SerializationFormat serializationFormat)
   at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SerializationFormat serializationFormat)
   at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj)
   at System.Web.Mvc.JsonResult.ExecuteResult(ControllerContext context)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult)
at System.RuntimeMethodHandle.InvokeMethod(对象目标,对象[])
参数、签名sig、布尔构造函数)
在System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(对象obj,
对象[]参数,对象[]参数)
在System.Reflection.RuntimeMethodInfo.Invoke(对象obj,BindingFlags
invokeAttr,绑定器绑定器,对象[]参数,CultureInfo区域性)
在System.Web.SecurityUtils.MethodInfoInvoke(MethodInfo方法、对象目标、对象[]参数)处
位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationCustomObject(对象o、StringBuilder sb、Int32深度、哈希表ObjectsUse、SerializationFormat SerializationFormat)
位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValueInternal(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)
位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValue(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)
位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationEnumerable(IEnumerable enumerable、StringBuilder sb、Int32 depth、Hashtable Object正弦、SerializationFormat SerializationFormat)
位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValueInternal(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)
位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValue(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)
位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationCustomObject(对象o、StringBuilder sb、Int32深度、哈希表ObjectsUse、SerializationFormat SerializationFormat)
位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValueInternal(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)
位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValue(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)
位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationEnumerable(IEnumerable enumerable、StringBuilder sb、Int32 depth、Hashtable Object正弦、SerializationFormat SerializationFormat)
位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValueInternal(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)
位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValue(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)
位于System.Web.Script.Serialization.JavaScriptSerializer.Serialization(对象obj、StringBuilder输出、SerializationFormat SerializationFormat)
位于System.Web.Script.Serialization.JavaScriptSerializer.Serialization(对象obj,SerializationFormat SerializationFormat)
位于System.Web.Script.Serialization.JavaScriptSerializer.Serialization(对象obj)
位于System.Web.Mvc.JsonResult.ExecuteResult(ControllerContext上下文)
位于System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext ControllerContext,ActionResult ActionResult)
位于System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1筛选器、Int32筛选器索引、ResultExecutingContext预文本、ControllerContext ControllerContext、ActionResult ActionResult)
位于System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1筛选器、Int32筛选器索引、ResultExecutingContext预文本、ControllerContext ControllerContext、ActionResult ActionResult)
位于System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext ControllerContext,IList`1 filters,ActionResult ActionResult)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.c_uuDisplayClass21.c_uuDisplayClass2B.b_u1C()中
在System.Web.Mvc.Async.AsyncControllerActionInvoker.c__DisplayClass21.b__1e(IAsyncResult asyncResult)

根据堆栈跟踪,当MVC尝试对返回值进行JSON序列化时,似乎发生了错误。由于该值是一个
列表
,因此
属性
类上可能有一个成员,在调用时抛出异常
    using (var db = new LiensTrackerEntities())
    {
        var pList = db.Properties
            .Where(p => p.RecipientPropertiesCollection
                .Any(rp => rp.RecipientId == id))
            .ToList();
        return Json(pList, JsonRequestBehavior.AllowGet);
    }