我已经到处找了,但没有找到解决我确切问题的办法。
public class PageDetailsViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Image { get; set; }
}
控制器 public ActionResult Search(int SysID)
{
var query = from r in _db.Auctions
from d in _db.Product_Details
where SysID == d.Id && r.BidStatus == "Open" && d.Id == r.Product_DetailsId
select new PageDetailsViewModel
{
Name = d.Name,
Description = d.Description,
Image = d.Image
};
return View(query);
}
<<p> 视图/strong> @model IEnumerable<ProjectT.Models.PageDetailsViewModel>
@Html.DisplayNameFor(x => x.Name)
这不能使名称通过。但是,如果我使用foreach
@foreach (var item in Model)
{
@item.Name
}
它带来的名字没有问题。
这个扩展方法显示DataAnnotations命名空间的DisplayNameAttribute
的值。把这当成一个标签。通常是这样使用的:
[DisplayName("The Name")]
public string Name { get; set; }
在视图中:
@Html.DisplayNameFor(x => x.Name) <-- displays The Name
上面的代码只有在模型是单个项目时才有效。对于列表的情况,你需要做一些技巧,比如一个For循环,你可以这样做:
@Html.DisplayNameFor(x => x[i].Name): @Model[i].Name <-- displays The Name: Bill