저는 MVC가 처음입니다. 내 모델의 속성으로 interface
을 사용하고 있습니다.MVC3 모델은 성을 사용하여 바인딩합니다.
내 Data Annotation Attributes
이 무시되고있는 것으로 나타났습니다. 양식을 제출하는 중에 오류가 발생했습니다.
인터페이스의 인스턴스를 만들 수 없습니다.
은 곧 내가 정의 ModelBinder
나는 내가 RegistrationModel
다음 한 ModelBinder
의 CreateModel
방법 내부에서 수행 될 필요가 무엇인지 파악하는 힘든 시간을 보내고 있어요에게 사용해야 할 것입니다 있다고 생각 : 여기서
public class RegistrationModel
{
#region Properties (8)
public string Email { get; set; }
public string FirstName { get; set; }
public Gender Gender { get; set; }
public string LastName { get; set; }
public string Password { get; set; }
public string PasswordConfirmation { get; set; }
public IPlace Place { get; set; }
public string Username { get; set; }
#endregion Properties
}
는 IPlace
인터페이스 구현은 :
public interface IPlace
{
#region Data Members (7)
string City { get; set; }
string Country { get; set; }
string ExternalId { get; set; }
Guid Id { get; set; }
string Name { get; set; }
string Neighborhood { get; set; }
string State { get; set; }
#endregion Data Members
}
public class Place : IPlace
{
#region Implementation of IPlace
public Guid Id { get; set; }
[StringLength(100, ErrorMessage = "City is too long.")]
public string City { get; set; }
[StringLength(100, ErrorMessage = "Country is too long.")]
public string Country { get; set; }
[StringLength(255, ErrorMessage = "External ID is too long.")]
public string ExternalId { get; set; }
[Required(ErrorMessage = "A name is required.")]
[StringLength(450, ErrorMessage = "Name is too long.")]
[DisplayName("Location")]
public string Name { get; set; }
[StringLength(100, ErrorMessage = "Neighborhood is too long.")]
public string Neighborhood { get; set; }
[StringLength(100, ErrorMessage = "State is too long.")]
public string State { get; set; }
#endregion
}
여기 인터페이스 사용의 요점은 무엇입니까? 그것을 없애고 "Place"클래스를 사용하십시오. –