1
I'm今天開始...... 但有一些問題,下拉模式I'm與AutoMapper工作...AutoMapper問題下拉
我有什麼至今:
用戶模型
public class User : Entity
{
public virtual string Name { get; set; }
public virtual string Email { get; set; }
public virtual string Password { get; set; }
public virtual Role Role { get; set; }
}
角色模型
public class Role : Entity
{
public virtual string Name { get; set; }
}
UserUpdateViewModel
public class UserUpdateViewModel
{
public int Id{get;set;}
[Required(ErrorMessage = "Required.")]
public virtual string Name { get; set; }
[Required(ErrorMessage = "Required."), Email(ErrorMessage = "Email Invalid."), Remote("EmailExists", "User", ErrorMessage = "Email already in use.")]
public virtual string Email { get; set; }
[Required(ErrorMessage = "Required.")]
public virtual string Password { get; set; }
[Required(ErrorMessage = "Required")]
public virtual string ConfirmPassword { get; set; }
[Required(ErrorMessage = "Required.")]
public int RoleId { get; set; }
public IList<Role> Roles { get; set; }
}
UserController的
public ActionResult Update(int id=-1)
{
var _user = (_userRepository.Get(id));
if (_user == null)
return RedirectToAction("Index");
Mapper.CreateMap<User, UserUpdateViewModel>();
var viewModel = Mapper.Map<User, UserUpdateViewModel>(_user);
viewModel.Roles = _roleRepository.GetAll();
return View(viewModel);
}
[HttpPost, Transaction]
public ActionResult Update(UserViewModel user)
{
if (ModelState.IsValid)
{
user.Password = _userService.GetPasswordHash(user.Password);
Mapper.CreateMap<UserViewModel, User>();
var model = Mapper.Map<UserViewModel, User>(user); //model.Role = null
_userRepository.SaveOrUpdate(model); //ERROR, because model.Role = null
return Content("Ok");
}
return Content("Erro").
}
查看更新
...
@Html.DropDownListFor(model => model.RoleId, new SelectList(Model.Roles, "Id", "Name"), "-- Select--", new { @class = "form radius" })
...
一些注意事項:
1 - 我回國內容(),因爲所有支持AJAX的使用HTML 5 pushState的等等等等
2 - 在我的更新(POST一個)方法中,我的模型 ret Autommapper所有的角色= null
爲什麼我的Automapper返回的角色爲null?
這是與AutoMapper一起使用的正確方法嗎?任何提示?
感謝
首先,您通常在application_start期間執行一次「CreateMap」。其次,什麼是「用戶系統」?你沒有提供這個佈局。另外,在設置Automapper(用你的「CreateMap」調用)之後,總是執行一個「AssertConfigurationIsValid」來確保你不會丟失任何映射。 – PatrickSteele 2011-04-15 14:23:33
感謝您的幫助...這是一個錯誤... UserSystem = User ...我現在的問題是隻有Automapper返回的角色... – Paul 2011-04-15 17:46:50