У меня есть модель, которая выглядит так:
public class UserAdminEditViewModel
{
public User User { get; set; }
public IEnumerable<Usergroup> Usergroups { get; set; }
public IList<int> UsergroupID { get; set; }
public UserAdminEditViewModel() {}
}
И мой вид выглядит так:
"%>
UserEdit
UserEdit
<% using (Html.BeginForm()) {%>
<fieldset>
<legend>Fields</legend>
<p>
<label for="Username">Användarnamn: *</label>
<%= Html.TextBox("Username", Model.User.Username) %>
<%= Html.ValidationMessage("Username", "*") %>
</p>
<p>
<label for="Firstname">Förnamn: *</label>
<%= Html.TextBox("Firstname", Model.User.Firstname) %>
<%= Html.ValidationMessage("Firstname", "*") %>
</p>
<p>
<label for="Surname">Efternamn: *</label>
<%= Html.TextBox("Surname", Model.User.Surname) %>
<%= Html.ValidationMessage("Surname", "*") %>
</p>
<p>
<label for="Email">E-post: *</label>
<%= Html.TextBox("Email", Model.User.Email) %>
<%= Html.ValidationMessage("Email", "*") %>
</p>
<p>
<label for="Password">Lösenord: *</label>
<%= Html.TextBox("Password", Model.User.Password) %>
<%= Html.ValidationMessage("Password", "*") %>
</p>
<p>
Användargrupper: <br />
<%= Html.CheckBoxList(Model.Usergroups.Select(ug => ug.UsergroupID.ToString()), Model.Usergroups.Select(ug => ug.UsergroupName), "UsergroupID") %>
</p>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
<% } %>
<div>
<%=Html.ActionLink("Tillbaka till användare", "Users") %>
</div>
Мой контроллер выглядит так:
public ActionResult UserEdit(int? userID)
{
User u;
if (userID == null)
{
u = new User();
}
else
{
u = us.GetUsers(userID.Value).SingleOrDefault();
}
return View("UserEdit", new UserAdminEditViewModel { User = u, Usergroups = ug.GetUsergroups() });
}
[AcceptVerbs(HttpVerbs.Post)]
//public ActionResult UserEdit([BindAttribute(Include = "Firstname,Surname,Username,Email,Password,UserID,UsergroupID")]User userobj, IList<int> UsergroupID)
public ActionResult UserEdit(UserAdminEditViewModel userobj)
{
if (ModelState.IsValid)
{
try
{
//userobj.UsersUsergroups = new UsersUsergroup { UsergroupID = UsergroupID.ToList() };
//us.SaveUser(userobj);
}
catch
{
ModelState.AddModelError("SomeError", "errrrrrrrrror");
}
}
return View();
//return View("UserDetail", new UserAdminEditViewModel { User = userobj });
}
Проблема:
Если я использую созданную мною UserAdminEditViewModel, устанавливаются только значения для IList UsergroupID (это список флажков с именем UsergroupID). Если я использую класс User, я могу получить доступ ко всем свойствам пользователя по мере заполнения имени и т. Д.
Почему объект User не заполняется в UserAdminEditViewModel при публикации? Чего не хватает?
Заранее спасибо
/ M
EDIT:
Вид строго типизирован как «BookingSystem.MVC.ViewModels.UserAdminEditViewModel»
не может показать его в этом редакторе