只是想知道为什么我得到编译时错误:
“属性'DisplayColumn'在此声明类型上无效。它仅对'class'声明有效。”
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace MyApplication.Models.DataAnnotations
{
[MetadataType(typeof(AppUser_DataAnnotations))]
public partial class AppUser
{
}
public class AppUser_DataAnnotations
{
[DisplayColumn("Name")]
public string FirstName { get; set; }
}
}
我正在使用上面来覆盖mvccontrib渲染的网格列标题。知道为什么我得到编译时错误?任何帮助将不胜感激。
答案 0 :(得分:4)
对于将来遇到此问题的人来说,这可能有所帮助:
我遇到了与上述相同的问题。如其他答案中所述,使用DisplayName属性并包含System.ComponentModel命名空间很重要。除此之外,属性必须有一个getter(和setter)才能使属性正常工作。错误消息在这一点上有点混乱。
答案 1 :(得分:3)
您遇到编译时错误的原因是[DisplayColumn]
属性只能应用于类级别而不能应用于类的属性。您可能会将此属性与[DisplayName]
混淆。
答案 2 :(得分:0)
用属性装饰模型属性时,您也可能会遇到此问题。
您需要用ActionFilterAttribute
的非属性的修饰 Controller方法的。