首页 > 解决方案 > 根据 ID 从引用表中检索文字字符串值

问题描述

我的项目有两个不同的类。一个用于应用程序数据,用于有关每个服务的信息,第二个用于存储服务名称的参考数据。

每个客户可以有多项服务。我有一个包含 CustomerServices 类型的视图模型。我正在尝试获得一位客户的所有客户服务。我通过 linq 查询得到了正确的结果,但它返回了服务的 ID,但我想通过查看参考数据来打印出服务的名称。我可以在我的 Linq 查询中加入它们,但 ViewModel 没有服务名称的属性,那么如何在我的剃刀视图中显示服务名称而不是 ID?

Linq 查询

 var data = from profile in _context.Customers
             join services in _context.CustomerServices
             on profile.strUserID equals services.strUserID
             join refServices in _context.ServicesOffered
             on services.lngServiceID equals refServices.lngServiceID
             where profile.strUserID == UserId
             select new { p = profile,  s = services, refs = refServices };

我的视图模型

  public class ServiceProvider
    { 
        public CustomerProfile Customer { get; set; }
        public IEnumerable<CustomerProfile> CustomerProfiles { get; set; }
        public CustomerServices CustomerServices { get; set; }
    }

控制器代码:

 var serviceProviderViewModel = new ServiceProvider
            {
                Customer = new CustomerProfile(),
                CustomerServices = new CustomerServices(),
            };

 foreach (var v in data)
            {
                serviceProviderViewModel.Customer = v.p;
                serviceProviderViewModel.CustomerServices = v.s;
                RatingList.Add(v.r); 
            }
            serviceProviderViewModel.CustomerRating = RatingList;


剃刀查看页面

 <span>@Html.DisplayFor(modelItem => Model.CustomerServices.lngServiceID):$@Html.DisplayFor(modelItem => Model.CustomerServices.ServiceRatePerNight)</span>

现在,它打印 10 : $45 的服务 ID。如何获取服务名称并打印它而不是 id(10)?

标签: c#linqrazormodel-view-controllerasp.net-mvc-viewmodel

解决方案


推荐阅读