Repo方法不将数据返回给控制器(ASP.NET)

时间:2018-02-02 13:26:53

标签: c# asp.net

我有repo方法从db

获取数据

这是repo方法

 public List<PatientMasterDataViewModel> GetPatientData(string name)
    {
        using (var ctx = new ApplicationDbContext())
        {
            List<PatientMasterDataViewModel> patientdata = new List<PatientMasterDataViewModel>();
            var items = ctx.Patients.Where(x => x.Name.Contains(name)).ToList();
            for (int i = 1; i < items.Count; i++)
            {
                patientdata.Add(new PatientMasterDataViewModel
                {
                    Id = items[i].Id,
                    Name = items[i].Name,
                    Birthday = items[i].Date_of_Birthday
                });
            }

            return patientdata;
        }
    }

之后我需要在控制器方法中获取这些数据

这是控制器方法

public JsonResult PatientMasterDataInfo(string name)
    {
        var masterdatainfo = _repository.GetPatientData(name);
        return Json(masterdatainfo.ToArray(), JsonRequestBehavior.AllowGet);
    }

items的回购中我有数据

这是屏幕

enter image description here

但由于某些原因,它没有添加到patientdata,因此在控制器中我没有。

我的麻烦在哪里?

2 个答案:

答案 0 :(得分:0)

你从1开始循环。请从0索引开始。

public List<PatientMasterDataViewModel> GetPatientData(string name)
{
    using (var ctx = new ApplicationDbContext())
    {
        List<PatientMasterDataViewModel> patientdata = new List<PatientMasterDataViewModel>();
        var items = ctx.Patients.Where(x => x.Name.Contains(name)).ToList();
        for (int i = 0; i < items.Count; i++)
        {
            patientdata.Add(new PatientMasterDataViewModel
            {
                Id = items[i].Id,
                Name = items[i].Name,
                Birthday = items[i].Date_of_Birthday
            });
        }

        return patientdata;
    }
}

答案 1 :(得分:0)

根据您的代码,它不应该是null,但我在您的代码中看到一个问题,即您的循环是从1而不是0的字符串,因此将其更改为:

for (int i = 0; i < items.Count; i++)
{
}