Я использую asp.net mvc 3, аннотации данных и автоматический сопоставление.
Я хочу, чтобы все мои аннотации по свойствам в моей модели просмотра после проверки свойств прошли проверку. Я использую 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>();
}
}
Таким образом, в основном у меня это как отдельная модель представления, которая заключена в другую модель просмотра, содержащую список пользователей (моя модель домена)
Таким образом, я использую свою модель домена для создания таблицы и моего AddUserViewModel для моего добавления пользователей.
Кажется, лишний избыток, поэтому я не уверен, есть ли лучший способ.
Edit
У меня есть что-то вроде этого
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);
Изменить 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.