嵌套对象的模型绑定

时间:2012-08-31 14:02:14

标签: c# asp.net-mvc linq entity-framework linq-to-entities

我有一个班级

 public class Offer
{
    public Int32 OfferId { get; set; }
    public string OfferTitle { get; set; }
    public string OfferDescription { get; set; }

}

和另一个班级

 public class OfferLocationViewModel
{
    public Offer Offer { get; set; }
    public Int32 InTotalBranch { get; set; }
    public Int32 BusinessTotalLocation { get; set; }
}

现在我的控制器中有以下

 public ActionResult PresentOffers(Guid id)
    {
        DateTime todaysDate=Utility.getCurrentDateTime();

        var rOffers=(from k in dc.GetPresentOffers(id,todaysDate)
                     select new OfferLocationViewModel()
                     {
                        Offer.  //I dont get anything here..

                     }).ToList();


        return PartialView();
    }

现在问题出在我的控制器中,我无法访问'Offer'类的任何属性!! 我想,因为我正在创建一个新的OfferLocationViewModel(),并且它有一个类型为'Offer'的属性,我将能够访问这些属性。但我不能。

有谁能告诉我如何做到这一点?

1 个答案:

答案 0 :(得分:2)

在像new OfferLocationViewModel { ... }这样的类初始化程序中,您只能设置直接属性,即'Offer = new Offer()'。

您无法通过初始化程序访问包含类型的属性。

虽然您可以将视图模型的Offer初始化为具有以下给定属性的新商品:

var rOffers = (from k in dc.GetPresentOffers(id,todaysDate)
               select new OfferLocationViewModel {
                   Offer = new Offer {
                       OfferId = ...,
                       OfferTitle = ...,
                       OfferDescription = ...
                   }
               }).ToList();