2010-07-21 152 views
0

我堅持如何最好地呈現一些從兩個不同的表中動態生成的數據。綁定透視查詢在ASP.Net中查看MVC

鑑於我的查詢:

var assets = assetRepo.Find(x => x.LoginId == User.Identity.Name); 
    var accounts = repository.Find(x => x.AccStatus == "A" && x.LoginId == User.Identity.Name); 

    var query = from asst in assets 
       join acct in accounts on asst.AccountId equals acct.AccountId 
       select new 
       { 
        Account = acct.AccountNumber, 
        Status = acct.AccStatus, 
        Make = asst.Make, 
        Model = asst.Model, 
        Submodel = asst.SubModel, 
        Registration = asst.Registration, 
        Balance = acct.BalanceOutstanding, 
        NextPayment = acct.NextPayment, 
        Date = String.Format("{0:dd MMM yyyy}", acct.NextPaymentDate), 
        Due = acct.ArrearsBal 
       }; 

什麼是最好的(即最乾淨)綁定這看法呢?是否需要一個自定義類或者是否有方法來指定和迭代一組匿名類型?

回答

1

創建自定義類可以爲您提供額外的好處。您可以使用DisplayAttribute設置列標題和順序。然後,您可以創建視圖(或與DisplayFor一起使用的模板),該視圖使用任何類型的對象列表並使用反射很好地讀取註釋和顯示視圖。

class Report { 
    [Display(Name="Account",Order=1)] 
    public string Account {get; set;} 

    [Display(Name="Next payment",Order=2)] 
    public Date NextPayment {get; set;} 
} 

它看起來也乾淨。您將能夠使用此註釋不僅用於網格,而且用於Excel導出或其他數據操作。