Я использую asp.net mvc 3, аннотации данных и автоматическое сопоставление.
Я хочу, чтобы все мои аннотации к свойствам в моей модели представления, как только свойства прошли проверку, я использую автоматическое сопоставление, чтобы отобразить его обратнок моему объекту домена.
У меня есть view-модель, у которой есть свойства, которые я хочу иметь коллекцию, так как я хочу сгенерировать таблицу из них.Я также хочу использовать их позже, чтобы использовать в качестве формы для добавления строк в эту таблицу.
Так что мне делать?Как мне взять эти свойства и создать их коллекцию?
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 для добавления пользователей.
Кажется, что это несколько избыточно, поэтому я не уверен, что есть лучший способ.
Редактировать
У меня что-то вроде этого
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.