В зависимости от того, где я использую свой класс, я хочу иметь возможность отображать другое DisplayName.
У меня есть следующий класс:
[MetadataType(typeof(PortalMetaData))]
[System.Web.Mvc.Bind(Exclude = "PortalId")]
public partial class Portal
{
public Portal()
{
this.Created = DateTime.Now;
}
}
public class PortalMetaData
{
[Required(ErrorMessage = "Portal name is required")]
[StringLength(50, ErrorMessage = "Portal name must be under 50 characters")]
public object PortalName { get; set; }
[Required(ErrorMessage = "Description is required")]
public object Description { get; set; }
}
У меня есть соответствующая таблица в базе данных портала
Я использую таблицу Portal с PortalController для администратора сайта для обновления записей в таблице портала.
Я хочу, чтобы другой пользователь с другой ролью (AsstAdmin) мог также обновить эту таблицу.
Чтобы облегчить это, я думаю о создании отдельного частичного класса, который каким-то образом связан с моделью портала. Это позволило бы мне отображать ограниченные поля для обновления с помощью AsstAdmin, и я могу отображать другое имя для поля.
Как я могу выполнить эту задачу?
Если я добавлю следующий класс, который наследует от Portal, я получу исключение:
Невозможно привести объект типа
«Project1.Mvc.Models.Portal» для ввода
'Prpject1.Mvc.Models.Site'.
[MetadataType(typeof(SiteMetaData))]
public class Site : Portal
{
public Site() { }
}
public class SiteMetaData
{
[Required(DisplayName = "Site Description")]
public object Description { get; set; }
}