我有一个通用编辑器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 )
最后返回正确的词典:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。