asp.net-mvc – 如何为模型状态字典生成字段名称?
发布时间:2020-12-16 09:22:59 所属栏目:asp.Net 来源:网络整理
导读:新的辅助方法EditorFor,TextBoxFor在避免视图中的硬编码字段名称方面非常酷. 我正在编写验证函数,其中服务验证复杂的模型数据. 如果字段存在错误,则服务应将此字段的错误推送到modelstate字典中. 是否有帮助方法生成完整的模型名称? 编辑: SampleModel中:
新的辅助方法EditorFor,TextBoxFor在避免视图中的硬编码字段名称方面非常酷.
我正在编写验证函数,其中服务验证复杂的模型数据. 是否有帮助方法生成完整的模型名称? 编辑: class CustomModel { public InnerModel Inner { get; set; } } class InnerModel { public String Field1 { get; set; } public SomethingMoreToValidate[] More { get; set; } } class SomethingMoreToValidate { public int A { get; set; } public int B { get; set; } } 视图中InnerModel.SomethingMoreToValidate [0] .A的输入字段名称为“InnerModel.SomethingMoreToValidate [0] .A”.要将模型状态错误绑定到字段,我必须将带有此名称的错误放入ModelStateDictionary中. 在显示InnerModel数据的视图中,我可以写: Html.EditorFor(m => m.SomethingMoreToValidate[0].A); 如果重命名属性,编译器会警告我. ModelState.AddModelError( "InnerModel.SomethingMoreToValidate[0].A","There is a problem with this field"); 如果重命名某个属性,如果我没有像unittests这样的其他检查,则没有反馈. ModelState.AddModelErrorFor( m => m.InnerModel.SomethingMoreToValidate[0].A,"There is a problem with this field") 解决方法
你可以使用
GetExpressionText方法编写一个帮助器:
public static string GetExpressionText<TModel,TProperty>(Expression<Func<TModel,TProperty>> expression) { return ExpressionHelper.GetExpressionText(expression); } 然后: var expression = GetExpressionText<MyViewModel,string>( x => x.InnerModel.SomethingMoreToValidate[0].A ); ModelState.AddModelErrorFor(expression,"There is a problem with this field"); 话虽如此,您显然应该在正确编写的应用程序中进行单元测试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-4 – Html.RenderAction使用Post而不是Get
- asp.net – 网站在解决方案构建后需要很长时间才能启动
- 什么是ASP.NET相当于PHP中的memcached?
- asp.net-mvc-3 – 如何阻止Ninject重写自定义DataAnnotatio
- asp.net – System.Byte []在gridview中显示而不是图像?
- asp.net – 避免使用CORS进行预检OPTIONS请求
- ASP.NET中的Application和Cache有什么区别?
- asp.net – 在本地主机(Chrome和FF)上过期不到1年时未设置c
- asp.net – 抛出类型“System.OutOfMemoryException”的异常
- asp.net-core – VS 2015中的Asp.net核心EF
推荐文章
站长推荐
- 写单元测试在ASP.NET Web API中使用User.Identit
- asp.net-mvc – 在MVC4中为ViewModel设置默认值的
- asp.net – Page_Load中的Response.Redirect
- asp.net – 使用匈牙利表示法在VB.NET中验证命名
- asp.net-mvc – 具有服务层和存储库层的ASP.NET
- 如何获取基于PhoneGap的应用程序来对ASP.NET For
- Visual Studio 2017 ASP.NET Core开发
- asp.net-mvc – 使用编辑器下拉列表值更新Kendo网
- asp.net-mvc-3 – MVC3:超出最大请求长度
- asp.net使用用户代理字符串检测任何平板电脑设备
热点阅读