验证 – 想知道为什么DisplayName属性在被覆盖属性的LabelFor中
今天我做了几个<%= Html.LabelFor(m => m.MyProperty)%>在ASP.NET MVC 2中,并使用System.ComponentModel中的[DisplayName(“Show this而不是MyProperty”)]属性。
事实证明,当我将属性放在一个被覆盖的属性上时,LabelFor似乎没有注意到。 这是一些简单的示例代码,更实际的情况是,我有一个与视图模型分离的数据库模型,但为方便起见,我想从数据库模型继承,添加仅查看属性并使用UI的属性来装饰viewmodel 。 public class POCOWithoutDataAnnotations { public virtual string PleaSEOverrideMe { get; set; } } public class EditModel : POCOWithoutDataAnnotations { [Required] [DisplayName("This should be as label for please override me!")] public override string PleaSEOverrideMe { get { return base.PleaSEOverrideMe; } set { base.PleaSEOverrideMe = value; } } [Required] [DisplayName("This property exists only in EditModel")] public string NonOverriddenProp { get; set; } } 强类型的ViewPage< EditModel>包含: <div class="editor-label"> <%= Html.LabelFor(model => model.PleaSEOverrideMe) %> </div> <div class="editor-field"> <%= Html.TextBoxFor(model => model.PleaSEOverrideMe) %> <%= Html.ValidationMessageFor(model => model.PleaSEOverrideMe) %> </div> <div class="editor-label"> <%= Html.LabelFor(model => model.NonOverriddenProp) %> </div> <div class="editor-field"> <%= Html.TextBoxFor(model => model.NonOverriddenProp) %> <%= Html.ValidationMessageFor(model => model.NonOverriddenProp) %> </div> 然后,标签显示为“PleaSEOverrideMe”(不使用DisplayNameAttribute),并且“查看页面时”仅使用EditModel“(使用DisplayNameAttribute)显示此属性。 [HttpPost] public ActionResult Edit(EditModel model) { if (!ModelState.IsValid) return View(model); return View("Thanks"); } <%= Html.ValidationMessageFor(model => model.PleaSEOverrideMe)%>实际使用[DisplayName(“这应该是标签,请重写我!”)]属性,并产生默认的errortext“这应该是标签为了覆盖我!字段是必需的。 一些友好的灵魂会有一些光明吗? 解决方法
Model binding and metadata using the strongly-typed helpers looks at the declared,rather than the runtime,type of the model.我认为这是一个错误,但显然MVC团队不同意我的观点,因为我的Connect问题被关闭为“按设计”。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 来自AJAX的表单身份验证和POST请求
- 我可以通过编程方式从我的ASP.NET应用程序向IIS7中的动态IP
- asp.net-mvc – ASP.Net MVC中的自我AJAX更新部分视图/控制
- asp.net – 使用.NET FormsAuthentication和持久性Cookie修
- asp-classic – 多个错误如果那么,否则如果
- asp.net-mvc – Asp.Net MVC路由 – 如何匹配整个URL?
- asp.net操作xml增删改示例分享
- asp.net-mvc-2 – ASP.NET MVC路由和URL.Action
- asp.net – 有浏览器相当于IE的ClearAuthenticationCache?
- 在内联代码ASP.NET中连接两个或多个字符串
- asp.net-mvc – ASP.NET MVC – 如何重定向安全?
- 可以按需生成ASP.NET黄色死亡屏幕(YSOD)吗?
- asp.net-mvc-4 – Telerik MVC索引超出范围
- 具有必需字段验证器的asp.net正则表达式验证器
- 使用ASP.NET MVC 3助手的标题属性的渲染跨度标签
- asp.net-mvc-3 – Asp.Net MVC 3自定义WebViewPa
- asp.net-mvc – 错误获取记录“LINQ to Entities
- asp.net-mvc – 使用存储库模式来支持多个提供程
- asp.net – aspx.designer.cs它是如何工作的?
- asp.net安全图像对其他用户的静态请求?