У меня есть бизнес-модели с именем Product
и Category
, как показано ниже, в которых я добавляю проверки:
public class Product
{
public int ProductId {get; set;}
[Required]
[StringLength(25)]
public string Name {get; set;}
public string Description {get; set;}
public int CategoryId {get; set;}
}
public class Category
{
public int CategoryId {get; set;}
public string Name {get; set;}
}
Для модели просмотра я создал что-то вроде этого:
public class ProductViewModel
{
public Product Product {get; set;}
public IList<Category> Categories {get; set;}
}
Один мой друг предложил сохранить все проверки в модели представления и отобразить все свойства бизнес-модели в модели представления следующим образом:
public class ProductViewModel
{
public int ProductId {get; set;}
[Required]
[StringLength(25)]
public string Name {get; set;}
public string Description {get; set;}
public int CategoryId {get; set;}
public IList<SelectListItem> CategoryDropdownValues {get; set;}
}
Я спросил его о преимуществах этого подхода к вышеупомянутому, он был не очень уверен. Но он настаивал на том, что вы не должны использовать бизнес-модели непосредственно в своих взглядах и что только модели просмотра должны быть проверены.
Мои вопросы:
- Должен ли я придерживаться логики проверки в моделях или бизнес-моделях?
- Неужели плохо, если модели просмотра зависят от бизнес-моделей?