Есть ли способ реализовать идею доменов данных (на уровне свойств) внутри класса, который используется как модель в представлении в ASP.Net MVC 4?Есть ли способ повторно использовать аннотации данных?
Рассмотрим этот код:
public class LoginProfileModel {
[DisplayName("Login ID")]
[Required(ErrorMessage = "Login ID is required.")]
public string LogonID { get; set; }
[DisplayName("Password")]
[Required(ErrorMessage = "Password cannot be blank.")]
[StringLength(20, MinimumLength = 3)]
[DataType(DataType.Password)]
public string Password { get; set; }
}
Вот LoginProfileModel в для ASP.Net MVC 4. Он использует множество аннотаций метаданных/данных, так что я могу создать чистый вид с этим кодом:
@model myWebSite.Areas.People.Models.LoginProfileModel
@using (Html.BeginForm("Index" , "Login")) {
@Html.ValidationSummary()
@Html.EditorForModel()
<input type="submit" value="Login" />
}
Я использую идею «ИД входа» и «Пароль» в нескольких режимах и, следовательно, более чем в одной модели представления. Я хочу иметь возможность определять атрибуты, которые использует Пароль, или, возможно, сам Пароль со всеми его аннотациями данных в одном месте, чтобы я мог повторно использовать все эти определения там, где это необходимо, вместо того, чтобы выполнять их каждый раз, когда они используются:
[DisplayName("Password")]
[Required(ErrorMessage = "Password cannot be blank.")]
[StringLength(20, MinimumLength = 3)]
[DataType(DataType.Password)]
public string Password { get; set; }
Возможно ли это каким-то образом?
Замечательно, что это лучший ответ после того, как он некоторое время натыкался на него. Это позволяет мне централизовать логику проверки, которая в конечном итоге является тем, что мне нужно. – Elenesski
Хорошая идея для разделения проверки поля. Было бы здорово, если бы мы могли использовать многоразовую технику '[DisplayName]. –