У меня есть вкладка в моем приложении, при нажатии на которую данные пользователя отображаются (с использованием атрибута HTML-заполнителя) для него внутри редактируемых текстовых полей. Пользователь может просто просмотреть их или отредактировать любую деталь, которую он хочет.
Теперь мой вопрос: следует ли мне создать класс модели представления для этого сценария или следует использовать фактический класс модели учетной записи? Я предполагаю, что мне придется создать класс модели представления, поскольку мне потребуются только «некоторые» свойства из класса модели учетной записи, но если я сделаю это, как я сделаю его «редактируемым» и впоследствии сопоставлю отредактированные свойства (если есть ) к фактическому классу модели Account?
Кроме того, скажите, где именно мне нужно сохранить класс модели представления, если мне нужно его создать.
1 ответ
я должен создать класс модели представления для этого сценария или я должен использовать фактический класс модели учетной записи?
Да, лучше всего создать модель, представляющую нужное вам действие, и вы сделаете это, чтобы предотвратить недостаточную и чрезмерную публикацию. Итак, вы работаете над объектами, над которыми, как вы ожидаете, будут работать пользователи. Например, если у вас есть AccountModel
, у которого много свойств, и вам нужно работать только с десятью из них в действии add
и пятью его свойствами в действии edit
, затем вы создаете две модели просмотра:
// your model or entity
public class AccountModel {
// the list of properties goes here
}
// your view models
public class CreateAccountModel {
public string Username {get;set;}
public string Password {get;set;}
public string Phone {get;set;}
}
// this model is for the scenario
// where you want users to edit their basic info
// but not the password (e.g. you have a separate
// functionality for changing the password)
public class EditAccountModel {
public string Username {get;set;}
public string Phone {get;set;}
}
Теперь, чтобы сопоставить ваши модели представления с вашей реальной моделью или объектом, вы можете использовать инструменты сопоставления или сделать это самостоятельно (утомительно, но вариант для небольших моделей). Вот шаги:
- Вы получаете модель / объект из сообщения
- Вы запрашиваете свою сущность из своей базы данных
- Вы копируете значения из модели представления в модель / объект
- Вы сохраняете модель / объект обратно в свою базу данных
где именно мне нужно хранить класс модели представления
Вы можете разместить его в своем проекте MVC в созданной папке Models
. На самом деле это скорее предпочтение, и стандартного способа сделать это нет, особенно если вы начинаете разбивать свое приложение на слои. Положите его куда-нибудь, где будет больше смысла.
Похожие вопросы
Новые вопросы
model-view-controller
Модель-представление-контроллер (MVC) — это архитектурный шаблон, введенный в середине 1970-х годов в PARC для того, чтобы составить интерфейс программного обеспечения, а также взаимодействие с пользователем. Для Microsoft ASP.NET MVC вместо этого используйте тег [asp.net-mvc] или [asp.net-core-mvc]. Для Spring MVC используйте тег [spring-mvc].