为什么 DataAnnotations 不适用于公共字段?例子:
namespace Models
{
public class Product
{
[Display(Name = "Name")]
public string Title; // { get; set; }
}
}
public ActionResult Test()
{
return View(new Models.Product() { Title = "why no love?" });
}
@Html.LabelFor(m => m.Title) // will return 'Title' if field, or 'Name' if property
@Html.DisplayFor(m => m.Title)
如果 Title 是一个字段,则 Display 属性似乎不起作用。如果标题更改为属性,它将按预期显示“名称”。
在此示例中,仅更改属性似乎很容易,但我尝试使用 F# 中的类型,其中它们被编译为具有字段而不是属性的类。
这已在 ASP.NET 4 和 MVC RC 3 中进行了测试。
DataAnnotations 不适用于字段的原因是因为用于检索属性的类似反射的机制(TypeDescriptor
) 仅支持属性。
虽然这并不容易,但如果有足够的需求,我们可以考虑将其应用于现场。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)