【发布时间】:2014-02-25 14:21:05
【问题描述】:
我有一个相当直接的要求 - 填充一个视图模型,它有一个 SelectList 作为其属性之一 - NewOccs 在模型上定义为:
public class RatesList
{
[Key]
public long TypeID { get; set; }
public string TypeName { get; set; }
public int TypeCount { get; set; }
public IEnumerable<SelectListItem> NewOccs { get; set; }
}
我要填充它的控制器代码是:
var rooms = dbt.Rooms.Where(r => r.hotel_id == AccID)
.GroupBy(p => p.RoomTypes).Select(g => new RatesList
{
TypeName = g.Key.type_name,
TypeCount = g.Count(),
NewOccs = dbt.Rates.Where(rt => rt.type_id == g.Key.type_id).GroupBy(rt => rt.occ).AsEnumerable()
.Select(proj => new SelectListItem
{
Text = proj.Key,
Value =proj.Key
})
}).ToList();
它应该从中获取信息的 Rates 表是:
public class Rates
{
public int id { get; set; }
public long type_id { get; set; }
public DateTime ratedate { get; set; }
public decimal rate { get; set; }
public string occ { get; set; }
}
当我填充 SelectList 时,如何访问我的 Rates 表中的任何其他字段?例如,在 VSExpressIDE 中智能感知只允许我输入 proj.Key - 其他属性不存在。我希望 occ 成为键/值,我希望文本是 occ 和 rate 的串联 - 即:
Text = proj.occ + ' ' + rate.ToString()
...但是在智能感知中找不到rate 和occ。
谢谢你,马克
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-mvc-4 viewmodel