我试图访问模型的元数据属性来创建一个帮助器,以便基于DataAnnotations自动添加HtmlAttributes。ModelMetadata附加属性始终为空
问题是,属性总是空的。
我有2个基本类,试图在一个空的项目:
namespace MegaInterestingProject
{
public class HomeController : Controller
{
public string Index()
{
var model = ModelMetadata.FromLambdaExpression<HomeModel, string>(x => x.User, new ViewDataDictionary<HomeModel>());
return model.Description;
}
}
public class HomeModel
{
[Required]
[MaxLength(13)]
[MinLength(11)]
[DisplayName("displayname")]
[Description("description")]
public string User { get; set; }
}
}
这里model.Description永远是空的,AdditionalValues字典总是空的。
这里可能缺少一些东西吗?
这里是一个参考项目,我在GitHub上说:https://github.com/erickgirard/TestHtmlAttributesHelper
你为什么要声明一个变量propertyName的?你似乎并没有真正使用它呢?再说,我已经走了泛型方法和已经完成一个使用这种结构的扩展方法,但是仍然为空的属性 – Erick
确实,这是我从我的一个实际功能中挑选出来的一些代码,我修改了这些代码进行了说明,但是我将它留下来说明如何知道哪些属性在你实际使用的模型中,这是你可以用来扩展@Htmlhelper的html helper函数的代码,但重点是:你试图从模型级读取元数据,而实际的属性值驻留在在model.property级别。 – souplex
我做了一个代码的复制和粘贴。仍然是空的。我编辑了我的第一篇文章,在github上进行了一个测试项目 – Erick