Я пытаюсь создать модель представления для редактирования, которая содержит несколько полей, немного отличающихся от основной модели, однако она появляется при попытке отобразить представление для этой модели представления, которое выдает исключение, поскольку отсутствуют некоторые свойства, указанные в MetadataType.
Код:
[MetadataType(typeof(IAdministrator))]
public partial class Administrator : IAdministrator
{
public string Name { get { return String.Format("{0} {1}", FirstName, LastName); } }
}
[MetadataType(typeof(IAdministrator))]
public class AdministratorEdit
{
public int AdministratorID { get; set; }
public string EmailAddress { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
[DisplayName("New Password")]
[DataType(DataType.Password)]
[StringLength(12, MinimumLength = 8)]
public string NewPassword { get; set; }
[DisplayName("Re-New Password")]
[DataType(DataType.Password)]
[StringLength(12, MinimumLength = 8)]
public string ReNewPassword { get; set; }
}
public interface IAdministrator
{
[Required]
[DisplayName("Email Address")]
[DataType(DataType.EmailAddress)]
[RegularExpression(@"^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})$")]
[StringLength(320)]
string EmailAddress { get; set; }
[Required]
[DisplayName("Password")]
[DataType(DataType.Password)]
[StringLength(12, MinimumLength = 8)]
string Password { get; set; }
[Required]
[DisplayName("First Name")]
[DataType(DataType.Text)]
[StringLength(25)]
string FirstName { get; set; }
[Required]
[DisplayName("Last Name")]
[DataType(DataType.Text)]
[StringLength(25)]
string LastName { get; set; }
[DisplayName("Date Created")]
[DataType(DataType.Date)]
DateTime Date { get; set; }
}
Это исключение, которое я получаю из представления, использующего модель AdministratorEdit: связанный тип метаданных для типа «....Models.AdministratorEdit» содержит следующие неизвестные свойства или поля: пароль, дата. Убедитесь, что имена этих элементов совпадают с именами свойств основного типа.
Может ли кто-нибудь предложить другой метод создания модели представления без указания другого типа метаданных или просто быстрое исправление для этого исключения?