asp.net-mvc – 通用列表属性的必需属性
发布时间:2020-05-23 13:14:39 所属栏目:asp.Net 来源:互联网
导读:是否可以将[必需]属性放在List属性? 我在POST上绑定一个通用列表,并且想知道如果属性中有0个项目,是否可以使ModelState.IsValid()失败? 将“必需”属性添加到列表样式属性不会真正做到您想要的。如果列表未创建,则将抱怨,但如果列表中存在0项,则不会抱
|
是否可以将[必需]属性放在List<>属性? 我在POST上绑定一个通用列表,并且想知道如果属性中有0个项目,是否可以使ModelState.IsValid()失败? 解决方法将“必需”属性添加到列表样式属性不会真正做到您想要的。如果列表未创建,则将抱怨,但如果列表中存在0项,则不会抱怨。但是,应该很容易得出自己的数据注释属性,并使其检查Count>的列表。这样的东西(尚未测试): [AttributeUsage(AttributeTargets.Property)]
public sealed class CannotBeEmptyAttribute : ValidationAttribute
{
private const string defaultError = "'{0}' must have at least one element.";
public CannotBeEmptyAttribute ( ) : base(defaultError) //
{
}
public override bool IsValid ( object value )
{
IList list = value as IList;
return ( list != null && list.Count > 0 );
}
public override string FormatErrorMessage ( string name )
{
return String.Format(this.ErrorMessageString,name);
}
}
编辑: 您还必须小心如何在视图中绑定列表。例如,如果绑定List< String>像这样的看法: <input name="ListName[0]" type="text" /> <input name="ListName[1]" type="text" /> <input name="ListName[2]" type="text" /> <input name="ListName[3]" type="text" /> <input name="ListName[4]" type="text" /> MVC模型binder将始终将5个元素放在列表中,即所有的String.Empty。如果这是您的View如何工作,您的属性将需要更复杂,例如使用Reflection来拉取通用类型参数并将每个列表元素与默认(T)或某些东西进行比较。 一个更好的选择是使用jQuery动态创建输入元素。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 我有15分钟向我的同事介绍ASP.NET MVC 我应
- asp.net-mvc – 从MVC5框架OAuth/OWin身份提供程序与外部au
- asp.net-mvc-3 – ViewBag.Title错误
- asp.net-mvc – 重定向到mvc中的actionresult但不想通过返回
- ASP.NET TreeView和选择所选节点
- 什么是在asp.net中301重定向更推荐的方法?
- asp.net – 在新的MVC4应用程序中获取UserId(int)
- asp.net-mvc – 如何gzip内容在asp.net MVC?
- .NET 4.5通用成员资格提供程序表名称
- asp.net – 无法加载文件或程序集System.Web.Http,版本= 5.
推荐文章
站长推荐
- 在提供页面之前确定ASP.NET页面视图状态的大小
- asp.net-mvc – ASP.NET MVC路由和静态数据(即图
- asp.net-mvc – MVC 5脚手架不为基本EF派生数据发
- asp.net-mvc – 文件输入MVC 3所需的客户端验证
- asp.net-mvc – 使用没有主键的查找在dbSet中查找
- asp.net-mvc – ASP.Net MVC 5 w /身份2.2.0注销
- asp.net-mvc – 是否可以在MVC和Webforms之间共享
- 体系结构设计良好的ASP.NET WebForms站点示例
- asp-classic – 在VBScript中输出GUID会忽略它之
- asp.net-mvc – 缺少webpages_UsersInRoles
热点阅读
