必要なフィールドだけが異なる2つのモデルがあり、同じビューを使用して両方を表示できるようにしたいと思います。
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)