c# – GetUnobtrusiveValidationAttributes总是返回一个空集合
发布时间:2020-12-15 22:12:40 所属栏目:百科 来源:网络整理
导读:我有一个通用编辑器div我正在整理.有些字段是必需的,我想添加不显眼的验证.有一个与这些字段关联的视图模型,但它存储在一个集合中,并且该div独立于该集合. 所以我的模型看起来像这样: public class MyViewModel{ public ListGridModel GridModels { get; se
我有一个通用编辑器div我正在整理.有些字段是必需的,我想添加不显眼的验证.有一个与这些字段关联的视图模型,但它存储在一个集合中,并且该div独立于该集合.
所以我的模型看起来像这样: public class MyViewModel { public List<GridModel> GridModels { get; set;} } public class GridModel { [Required] public string GridField { get; set; } } 我的观点看起来像这样: <div class="EditorDiv"> @Html.TextBox("GridField") </div> 根据我的研究,我应该可以做这样的事情: @{ var metadata = ModelMetadataProviders.Current.GetMetadataForType(null,typeof(GridModel)); } @Html.TextBox("myGridField",Html.GetUnobtrusiveValidationAttributes("GridField",metadata)) 这编译并运行得很好,但GetUnobtrusiveValidationAttributes总是返回一个空集合.我错过了什么? 解决方法
我的助手也有同样的问题.
如果我有一个ModelName = GridModels [0] .GridField htmlHelper.GetUnobtrusiveValidationAttributes(ModelName) 它返回空字典. 因为我是帮手,如果我用ModelMetadata(由表达式加载)参数调用一个方法,它可以工作: var ModelMetadata = ModelMetadata.FromLambdaExpression(expression,htmlHelper.ViewData) htmlHelper.GetUnobtrusiveValidationAttributes(ModelName,ModelMetadata ) 最后返回正确的词典:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |