我有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
的回购中我有数据
这是屏幕
但由于某些原因,它没有添加到patientdata,因此在控制器中我没有。
我的麻烦在哪里?
答案 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++)
{
}