【问题标题】:Adding the results of two queries to ViewData.Model将两个查询的结果添加到 ViewData.Model
【发布时间】:2009-01-18 22:58:53
【问题描述】:

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

    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 to sql 查询返回的属性。我现在需要做的是添加另一个查询,该查询将为每个供应商返回 x 数量的评级,然后我将遍历视图中的记录并显示评级。

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

【问题讨论】:

    标签: asp.net-mvc


    【解决方案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。当然,第二部分是可选的,但它确实有助于更好的编译时验证。

    【讨论】:

    • 感谢您的帮助,我已经完成了我需要的工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 2018-03-20
    • 2016-04-04
    相关资源
    最近更新 更多