Я новичок в среде MVC. Я использую DB-текст сущностей для выполнения операции, связанной с базой данных. Я делаю так Entityframework -> dbcontext -> Модель -> Контроллер -> Просмотр. Я непосредственно привязываю модель для просмотра. например есть имя таблицы UserProfile, и я создал модель с тем же именем и colum как свойство Model. Я собираю запись записей с Userprofile и привязываю эту коллекцию непосредственно к View. Вот модельЛучшая практика для MVC в .net C#
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
[DisplayName("ID")]
public long UserId { get; set; }
private string _UserName;
public string UserName
{
get { return _UserName; }
set { _UserName = value; }
}
public string Thalassemic
{
get;
set;
}
[Display(Name = "Your First Name")]
[Required(ErrorMessage = "First Name is Required.")]
[StringLength(30, ErrorMessage = "First Name must be {2}-{1} to long", MinimumLength = 2)]
[RegularExpression("^[a-zA-z ]+$", ErrorMessage = "First name must contain only characters")]
public string FirstName { get; set; }
[Display(Name = "Your Last Name")]
[Required(ErrorMessage = "Last Name is Required.")]
[RegularExpression("^[a-zA-z ]+$", ErrorMessage = "Only characters are allowed.")]
[StringLength(20, ErrorMessage = "First Name must be {2}-{1} to long", MinimumLength = 2)]
public string LastName { get; set; }
[Required(ErrorMessage = "Email Address is Required.")]
[StringLength(250, ErrorMessage = "{0} must be {2}-{1} to long", MinimumLength = 4)]
[Display(Name = "Email Address")]
[DataType(DataType.EmailAddress, ErrorMessage = "Please enter a valid email-address.")]
[RegularExpression("^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$", ErrorMessage = "Please enter a valid email-address.")]
//todo: re-think about updating email address as we are user email as login id and this can't change
public string Email { get; set; }}
Должен ли я использовать этот объект DTO для привязки данных с точки зрения
public class UserProfileDTO
{
public long UserId { get; set; }
private string _UserName;
public string UserName
{
get { return _UserName; }
set { _UserName = value; }
}
public string Thalassemic
{ get;
set;
}
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}
на основе выше, я хочу знать, что это правильный метод? если нет, то что лучше?
Вообще лучше использовать модель представления для зрения - [Что такое ViewModel в MVC] (http://stackoverflow.com/questions/11064316/what- is-viewmodel-in-mvc) –