0

目前,我正在尝试在同一个 ViewModel 中填充其他值。所以会发生什么是我的视图模型最初是通过这个 JsonResult 方法填充的。

public virtual JsonResult GetInstitutionContacts(Guid? provideruid)
{
    return Json(new { ContactViewModel = _repository.GetContactsByProviderUid(provideruid) }, JsonRequestBehavior.AllowGet);
}

当用户从下拉列表中进行选择时设置参数值。我的 JsonResult 方法使用的存储库如下所示:

    public IQueryable<ContactViewModel> GetContactsByProviderUid(Guid? provideruid)
    {
        var q = from r in Context.vw_DistrictContacts.Where(p => p.ProviderUid == provideruid && p.School == AdminBuilding)
                select new ContactViewModel
                {
                    FamilyName = r.GivenNames.ToUpper(),
                    GivenName = r.FamilyNames.ToUpper(),
                    CourtesyTitle = r.Title,
                    ContactId = r.PersonUid
                };
        return q.Distinct();
    }

我的上下文中的表视图(Context.vw_DistrictContacts)返回那些确切的字段(FamilyName,GiveName ...)。当用户随后选择另一个值时会出现此问题。然后下拉选择会触发此控制器方法:

        public virtual JsonResult GetSchoolContacts(Guid provideruid)
        {
            return Json(new { ContactViewModel = _repository.GetContacts(provideruid) }, JsonRequestBehavior.AllowGet);
        }

这是存储库方法的样子:

   public List<ContactViewModel> GetContacts(Guid? providerUid)
    {
        var q = from r in Context.vw_PersonToSdeUsers.Where(p => p.ProviderUid == providerUid)
                select new ContactViewModel
                {
                    SchoolName = r.SchoolName,
                    ContactId = r.PersonUid,
                    PersonUid = r.PersonUid,
                    FamilyName = r.GivenNames.ToUpper(),
                    GivenName = r.FamilyNames.ToUpper(),
                    SdeUserEmail = r.SdeUserEmail,
                    CourtesyTitle = r.ProgramDescription
                };
        return q.ToList();
    }

表视图 (Context.vw_PersonToSdeUsers) 再次返回了预期的结果。但返回值“q.ToList()”为空。我认为问题在于我已经在使用 ContactViewModel。我还为表格视图运行了 select 语句,它按预期返回。我还运行了提供程序过滤器,它再次按预期返回。

4

1 回答 1

0

谢谢,我添加了一个实体标签,也会添加一个 linq to sql 标签,因为这是我用于我的 ORM 的。我已经解决了这个问题,但我觉得这有点破解。我目前实现的是另一个模型,它定义了预期的属性,从这里我用 GetContacts() 方法填充它,一切都按预期工作。再次感觉有点hack。

于 2013-10-07T19:25:34.453 回答