Я использую asp.net mvc 3, аннотации данных и автоматический сопоставление.Как сделать списки в модели просмотра? + dataannotations
Я хочу, чтобы все мои аннотации по свойствам в моей модели просмотра после проверки свойств прошли проверку. Я использую auto mapper для отображения его обратно на объект моего домена.
У меня есть viewmodel, у которого есть свойства, которые я хочу иметь, поскольку я хочу создать таблицу из них. Я также хочу использовать их позже для использования в качестве формы для добавления строк в эту таблицу.
И что мне делать? Как я могу использовать эти свойства и создать их коллекцию?
public class UserViewModel()
{
[Required()]
public string UserName = {get; set;}
[Required()]
public string FirstName = {get; set;}
[Required()]
public string LastName = {get; set;}
}
Я хочу использовать эти свойства для создания таблицы и использования для формы.
Единственное, что я могу думать это делает
public class AddUserViewModel()
{
[Required()]
public string UserName = {get; set;}
[Required()]
public string FirstName = {get; set;}
[Required()]
public string LastName = {get; set;}
}
public class UserViewModel()
{
public List<User> Users {get; set;}
public AddUserViewModel {get; set;}
public UserViewModel()
{
Users = new List<Users>();
}
}
Поэтому в основном я его в качестве отдельной модели представления, которая заключена в другой ViewModel, который содержит список пользователей (мой домен модели)
Таким образом, я использую свою модель домена для создания таблицы и моего AddUserViewModel для моего добавления пользователей.
Кажется, лишний избыток, поэтому я не уверен, есть ли лучший способ.
Редактировать
У меня есть что-то вроде этого
var viewModel = new UserViewModel();
List<Users> users= UserService.GetAllUsers();
viewModel = Mapper.Map<Users, UserViewModel>(users);
return View("Index", viewModel);
Я также попытался
var viewModel = new UserViewModel();
List<Users> users= UserService.GetAllUsers();
viewModel.AddUserViewModel = Mapper.Map<Users, AddUserViewModel>(users);
return View("Index", viewModel);
Edit 2
Я это и компилирует, но Я получаю эту ошибку
SomeViewModel viewModel = new SomeViewModel();
List<User> users= userService.GetAllUsers();
viewModel.UserViewModel = Mapper.Map<List<User>, List<UserViewModel>>(users);
return View("Index", viewModel);
Trying to map Domain.User to ViewModels.UserViewModel.
Missing type map configuration or unsupported mapping.
Exception of type 'AutoMapper.AutoMapperMappingException' was thrown.
Я полностью не понимаю ваш вопрос ни того, что вы пытаетесь достичь. –
@ Darin Dimitrov - Я был опечаткой. Это исправлено сейчас. Я пытаюсь понять, как я могу продолжать использовать аннотации данных в модели представления, но также возвращать список объектов моего домена, возможно, не дублируя код дважды. Сейчас все в объекте «Пользователи» является в основном дубликатом того, что находится в AddUserViewModel(). Я мог бы помещать аннотации в объект домена, но я не хочу этого делать. – chobo2