asp.net-mvc – ASP.NET MVC ModelMetaData:有没有办法基于Requ
发布时间:2020-12-15 23:27:05 所属栏目:asp.Net 来源:网络整理
导读:Brad Wilson在ASP.NET MVC的新ModelMetaData上发布了一个很棒的博客系列: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-2-modelmetadata.html 在其中,他描述了ModelMetaData类现在在Views和模板化助手中的暴露方式.我想做的是
Brad Wilson在ASP.NET MVC的新ModelMetaData上发布了一个很棒的博客系列:
http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-2-modelmetadata.html 在其中,他描述了ModelMetaData类现在在Views和模板化助手中的暴露方式.我想做的是在窗体域标签旁边显示一个星号,如果该字段是必需的,那么我考虑使用ModelMetaData的IsRequired属性.但是,对于所有非空值属性,IsRequired默认为true,而对所有可空属性为false.问题是字符串始终为空,因此IsRequired属性对于字符串始终为false.有人知道如何覆盖IsRequired如何设置的默认值?或者,我想到利用已经使用我的属性来修饰的RequiredAttribute属性,但是RequiredAttribute似乎没有通过ModelMetaData类公开.有人知道如何解决这个问题吗? 提前致谢. 解决方法
您需要创建自己的ModelMetadataProvider.以下是使用DataAnnotationsModelBinder的示例
public class MyMetadataProvider : DataAnnotationsModelMetadataProvider { protected override ModelMetadata CreateMetadata(Collections.Generic.IEnumerable<Attribute> attributes,Type containerType,Func<object> modelAccessor,Type modelType,string propertyName) { var _default = base.CreateMetadata(attributes,containerType,modelAccessor,modelType,propertyName); _default.IsRequired = attributes.Where(x => x is RequiredAttribute).Count() > 0; return _default; } } 然后在Global.asax中的AppStartup中,您将要将以下内容作为默认元数据提供程序连接MyMetadataProvider: ModelMetadataProviders.Current = new MyMetadataProvider(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何设置表单身份验证cookie路径
- ASP.NET linkbutton两次提高onBeforeUnload事件
- html字符编码问题__.net core razor页面如何将后台对象序列
- AntiXss.HtmlEncode vs AntiXss.GetSafeHtmlFragment
- ASP.NET UserControl不初始化子控件
- asp.net – 在Google Chrome浏览器中加载两次
- Asp.net Mvc表单验证气泡提示效果
- asp.net – compilation debug =“true”和发布模式“relea
- asp.net-mvc-3 – 将数据库添加到App_Data文件夹
- asp.net – 是果园还是Umbraco MVC?
推荐文章
站长推荐
- asp.net-mvc-3 – 在ajax发布之前使用unobtrusiv
- 如何在ASP.Net MVC应用程序中访问WCF服务?
- ASP.NET MVC another entity of the same type a
- 数组 – 带有int数组参数的EF ExecuteSqlCommand
- asp.net-mvc-4 – 如何在MVC 4中每3秒刷新一次局
- asp.net – Facebook应用程序仅适用于管理员.为什
- 一步一步创建ASP.NET MVC5程序[Repository+Autof
- asp.net – 如何检查列表<>包含TimeSpan上的比较
- asp.net – 如何确定哪个按钮导致回发
- asp.net-mvc – ASP.NET MVC 2 RC区域和共享模型
热点阅读