Атрибут 'DisplayColumn' недопустим в этом типе объявления. Он действителен только для объявлений класса - PullRequest
1 голос
/ 14 августа 2010

Просто интересно, почему я получаю ошибку во время компиляции:

"Атрибут 'DisplayColumn' недопустим в этом типе объявления. Он действителен только в объявлениях 'класса'."*

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.Любая идея, почему я получаю ошибку времени компиляции?Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

4 голосов
/ 24 мая 2011

Для людей, которые столкнутся с этой проблемой в будущем, может быть, это поможет:

У меня та же проблема, что и описанная вышеКак описано в других ответах, важно использовать свойство DisplayName и включить пространство имен System.ComponentModel.Кроме того, свойство должно иметь геттер (и сеттер), чтобы атрибут работал.Сообщение об ошибке немного сбивает с толку.

3 голосов
/ 14 августа 2010

Причина, по которой вы получаете ошибку во время компиляции, заключается в том, что атрибут [DisplayColumn] можно применять только на уровне класса, а не в свойстве класса.Вы, вероятно, путаете этот атрибут с [DisplayName].

0 голосов
/ 20 августа 2018

Вы также можете столкнуться с этой проблемой, если украсите Свойство модели атрибутом.

Вам нужно украсить Метод Контроллера с ActionFilterAttribute , а не .

свойства.
...