验证 – 想知道为什么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-mvc – 如何阻止用户在MVC3应用程序上登录/注册和其
- asp.net-mvc – 在表单提交时传递整个模型
- asp.net – 我可以在卫星装配中组合本地资源吗?
- 基于角色的启用/禁用asp.net中的控件
- asp.net-mvc – Asp.Net MVC主题,如何?
- asp.net-mvc – 域实体,DTO和查看模型
- asp.net – MVC3 WebImage助手:resize将透明背景转换为黑色
- asp.net-mvc – 如何从控制器关闭ASP.NET MVC页面?
- asp.net-mvc – asp.net mvc数据库交互验证
- asp.net – iTextSharp单位
- ASP.NET – UpdatePanel和JavaScript
- asp.net-mvc-4 – ASP.NET MVC 4自定义权限属性
- asp.net – 在MS Access 2003中INSERT到用户表中
- asp.net – 在后面的代码中无法识别嵌套的Repeat
- 哪些ASP.NET生命周期事件可以异步?
- asp.net-mvc – EF映射对象不兼容的数据读取器异
- asp.net-mvc – 从Visual Studio 2015 Update 1
- 动态Linq的逻辑与和逻辑或的条件查询
- asp.net – 如何使用窗口身份验证获取电子邮件地
- asp.net – MVC 5 Web API与Facebook访问令牌到R
