80b*_*wer 13 asp.net webgrid data-annotations asp.net-mvc-3
我有一个Car类,我试图使用WebGrid助手在MVC 3视图中显示.下面是Car及其元数据类.
车类:
[MetadataType(typeof(CarMetadata))]
public partial class Car
{
// car implementation
}
Run Code Online (Sandbox Code Playgroud)
汽车元数据类:
public class CarMetadata
{
[DisplayName("Car Name")]
[StringLength(100, ErrorMessageResourceType = typeof(ValidationText), ErrorMessageResourceName="CarNameDescriptionLength")]
[Required]
public string CarName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
查看内容:
@model List<Car>
...
var grid = new WebGrid(Model, canPage: true, rowsPerPage: 10);
grid.Pager(WebGridPagerModes.NextPrevious);
@grid.GetHtml(
htmlAttributes: new { id = "grid" },
columns: grid.Columns(
grid.Column("CarName", ?????)
));
Run Code Online (Sandbox Code Playgroud)
目标:我想弄清楚如何使用DisplayName数据注释作为WebGrid(?????)中的列标题文本.有谁知道这是如何实现的?
提前致谢!
Dar*_*rov 11
丑陋,但它可以工作:
grid.Column(
"CarName",
ModelMetadata.FromLambdaExpression(
car => car.CarName,
new ViewDataDictionary<Car>(new Car())
).DisplayName
)
Run Code Online (Sandbox Code Playgroud)
问题是WebGrid助手完全基于动态数据,绝对没有强类型,这也是我讨厌它的原因之一.Microsoft的WebMatrix团队必须是C#4.0动态功能的真正粉丝,因为他们的整个API只接受弱类型对象:-)
MvcContrib Grid要好得多.
| 归档时间: |
|
| 查看次数: |
6413 次 |
| 最近记录: |