Asp.net mvc 4 MVC4型号';s的绑定属性在提交帖子后丢失
我遇到的问题是,尽管AssignedUsers属性在我的构造函数中进行了初始化(在离开GET Edit之前),但在提交表单之后,它在POST Edit操作中返回为null。所有其他属性保持其状态 除了在ModelState.IsValid检查之后(以及返回视图之前)重新初始化属性之外,还有其他方法可以克服此问题吗 型号:Asp.net mvc 4 MVC4型号';s的绑定属性在提交帖子后丢失,asp.net-mvc-4,Asp.net Mvc 4,我遇到的问题是,尽管AssignedUsers属性在我的构造函数中进行了初始化(在离开GET Edit之前),但在提交表单之后,它在POST Edit操作中返回为null。所有其他属性保持其状态 除了在ModelState.IsValid检查之后(以及返回视图之前)重新初始化属性之外,还有其他方法可以克服此问题吗 型号: public class GroupModel { public List<int> AssignedUserIds { get; set; }
public class GroupModel {
public List<int> AssignedUserIds { get; set; }
MultiSelectList _assignedUsers;
public MultiSelectList AssignedUsers () {
return _assignedUsers ?? _assignedUsers = new MultiSelectList(
AllUserGroups
.Where(userGroup => userGroup.GroupId == Id)
.Select(userGroup => userGroup.Users)
.ToList(),
"Id",
"Username");
}
private object _allUserGroups; /* not sure what this is */
private object AllUserGroups {
get { return _allUserGroups ?? _allUserGroups = AccountManagementAdapter.GetUserGroups();
}
public GroupModel(Groups group) {
AssignedUserIds = AllUserGroups
.Where(userGroup => userGroup.GroupId == Id)
.Select(userGroup => userGroup.UserId)
.ToList();
}
您没有在表单中发布数据。所以它不会返回到edit方法。这是你应该做的,我不建议将数据发布到你的表单中 我会做出这样的改变 型号:
public class GroupModel {
public List<int> AssignedUserIds { get; set; }
MultiSelectList _assignedUsers;
public MultiSelectList AssignedUsers () {
return _assignedUsers ?? _assignedUsers = new MultiSelectList(
AllUserGroups
.Where(userGroup => userGroup.GroupId == Id)
.Select(userGroup => userGroup.Users)
.ToList(),
"Id",
"Username");
}
private object _allUserGroups; /* not sure what this is */
private object AllUserGroups {
get { return _allUserGroups ?? _allUserGroups = AccountManagementAdapter.GetUserGroups();
}
public GroupModel(Groups group) {
AssignedUserIds = AllUserGroups
.Where(userGroup => userGroup.GroupId == Id)
.Select(userGroup => userGroup.UserId)
.ToList();
}
或您可以这样做
public class GroupModel {
public List<int> AssignedUserIds { get; set; }
public MultiSelectList AssignedUsers { get; set; }
private object allUserGroups
public GroupModel() {
allUserGroups = AccountManagementAdapter.GetUserGroups();
AssignedUsers = new MultiSelectList(
allUserGroups
.Where(userGroup => userGroup.GroupId == Id)
.Select(userGroup => userGroup.Users)
.ToList(),
"Id",
"Username");
}
public GroupModel(Groups group) :this() {
AssignedUserIds = allUserGroups
.Where(userGroup => userGroup.GroupId == Id)
.Select(userGroup => userGroup.UserId)
.ToList();
}
公共类GroupModel{
公共列表AssignedUserID{get;set;}
公共多选列表分配用户{get;set;}
私有对象组
公共分组模型(){
allUserGroups=AccountManagementAdapter.GetUserGroups();
AssignedUsers=新的多选列表(
冲积层群
.Where(userGroup=>userGroup.GroupId==Id)
.Select(userGroup=>userGroup.Users)
.ToList(),
“身份证”,
“用户名”);
}
公共组模型(组组):this(){
AssignedUserId=AllUserGroup
.Where(userGroup=>userGroup.GroupId==Id)
.Select(userGroup=>userGroup.UserId)
.ToList();
}
public class GroupModel {
public List<int> AssignedUserIds { get; set; }
MultiSelectList _assignedUsers;
public MultiSelectList AssignedUsers () {
return _assignedUsers ?? _assignedUsers = new MultiSelectList(
AllUserGroups
.Where(userGroup => userGroup.GroupId == Id)
.Select(userGroup => userGroup.Users)
.ToList(),
"Id",
"Username");
}
private object _allUserGroups; /* not sure what this is */
private object AllUserGroups {
get { return _allUserGroups ?? _allUserGroups = AccountManagementAdapter.GetUserGroups();
}
public GroupModel(Groups group) {
AssignedUserIds = AllUserGroups
.Where(userGroup => userGroup.GroupId == Id)
.Select(userGroup => userGroup.UserId)
.ToList();
}
@Html.ListBoxFor(group => group.AssignedUserIds, Model.AssignedUsers())
public class GroupModel {
public List<int> AssignedUserIds { get; set; }
public MultiSelectList AssignedUsers { get; set; }
private object allUserGroups
public GroupModel() {
allUserGroups = AccountManagementAdapter.GetUserGroups();
AssignedUsers = new MultiSelectList(
allUserGroups
.Where(userGroup => userGroup.GroupId == Id)
.Select(userGroup => userGroup.Users)
.ToList(),
"Id",
"Username");
}
public GroupModel(Groups group) :this() {
AssignedUserIds = allUserGroups
.Where(userGroup => userGroup.GroupId == Id)
.Select(userGroup => userGroup.UserId)
.ToList();
}