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

时间:2009-01-18 22:58:54

标签: asp.net-mvc

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

    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();
    }

这将呈现一个视图,其中包含从linq返回到sql查询的属性。我现在需要做的是添加另一个查询,它将为每个供应商返回x的评级数量,然后我将遍历视图中的记录并显示评级。

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

1 个答案:

答案 0 :(得分:1)

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

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。当然第二部分是可选的,但它确实可以实现更好的编译时验证。