代码之家  ›  专栏  ›  技术社区  ›  awharrier

将两个查询的结果添加到ViewData.Model

  •  1
  • awharrier  · 技术社区  · 16 年前

    我的控制器中有以下代码:

        public ActionResult Details(int id)
        {
            var dataContext = new BuffetSuppliersDBDataContext();
            var supplier = (from m in dataContext.BO_Suppliers 
                            where m.SupplierID == id
                            select m).FirstOrDefault();
    
            ViewData.Model = supplier;
    
            return View();
        }
    

    如何将评级查询的结果与已有内容一起推送到视图中?

    1 回复  |  直到 16 年前
        1
  •  1
  •   Chad Moran    16 年前

    最好的选择是创建一个可以传递到视图中的类。

    public class SupplierDetail
    {
        public Supplier { get; set; }
        public SupplierRating { get; set; }
    }
    
    public class SupplierDetailViewData
    {
        public IEnumerable<SupplierDetail> SupplierDetails { get; set; }
    }
    

    然后在控制器操作中,使用联接并在LINQ查询中选择新的SupplierDetail类。之后,您可以使用隐藏的代码创建强类型视图,并将其更改为。。。

    public partial class Details : ViewPage<SupplierDetailViewData>
    {
    }
    

    之后,在视图中--ViewData.Model将是SupplierDetailViewData。当然,第二部分是可选的,但它确实有助于更好的编译时验证。