0
두 필드에는 필요한 필드가 다른 두 모델이 있으며 두 모델을 표시 할 때 동일한 뷰를 사용할 수 있기를 원합니다.여러 모델에 대해 하나의보기 사용
은 내가 UserEdit 클래스
public abstract class UserEdit
{
public User User { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string NewPassword { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[EqualTo("NewPassword")]
public string ConfirmPassword { get; set; }
}
과 NEWPASSWORD 및 ConfirmPassword 속성에 필요한 속성을 추가하는 UserCreate 클래스가 있습니다.
class UserCreate_Metadata
{
[Required]
public string NewPassword { get; set; }
[Required]
public string ConfirmPassword { get; set; }
}
[MetadataType(typeof(UserCreate_Metadata))]
public partial class UserCreate : UserEdit
{
}
내가 지금처럼 특정 클래스 모델을 결합하면이 두 뷰에서 잘 작동 :
@model Siaa.NextWeb.Data.UserEdit
또는
@model Siaa.NextWeb.Data.UserCreate
보기를 만들 수있는 방법이 있나요 UserCreate 클래스의 추가 유효성 검사 요구 사항을 선택하도록 바인딩 할 클래스를 검색 하시겠습니까? 나는 동적 뷰를 사용했지만, 연구는 편집자
@Html.EditorFor(model => model.User.FirstName)
변명 내 서식, 내가 일하고 있어요 ... 내가 이렇게하면, 나는 그냥의 각 지점에서 전체보기가 없습니다 만약? @if (Model.IsCreatingUser) {@ Html.EditorFor (모델 => model.UserCreate.NewPassword) 한다} else { > @ Html.EditorFor (모델 => model.UserEdit.NewPassword) >} 등, 각 분야에 대한 등? –
예, 다소 차이가 있습니다. 사이트의 모양과 느낌이 포함 된 전체 사이트 레이아웃 파일이 있어야합니다. 이 특정 페이지의 경우 작업 할 모델에 따라 양식보기를 작성해야합니다. ASP.NET MVC의 경험 수준이 무엇인지 모르겠지만 동적 객체를 뷰에 전달하도록 설계되지 않았습니다. 개인적으로 나는 각 시나리오에 대해 두 가지 다른 시각을 가지고 있습니다. 여분의 일의 양은 그리 많지 않습니다. –
MVC에 처음 접했을 때, 실제로 뷰를 복제하려고하는 것처럼 보였습니다. 내 자연스러운 경향에 반하는 것입니다. 그래서 다른 옵션을 기대했습니다. –