У меня большая проблема.Сейчас я использую два списка, первый из которых содержит всех пользователей из базы данных.Второй список сможет хранить выбранных пользователей.Идея в том, что я собираюсь создать собрание и пригласить определенных пользователей, которые будут вставлены в таблицу, на конкретное собрание.
Я схожу с ума по этому поводу, я не могу заставить его работать.У кого-то есть простое решение, чтобы сделать это?Прямо сейчас я использую две кнопки для добавления / удаления, чтобы переместить элементы из списка1 в список2.
Я отправляю код, который у меня есть в контроллере, и просматриваю .. Проблема в том, что я получаю этот код ошибки "System.NullReferenceException: 'Ссылка на объект не была указана для экземпляра объекта."
Как правильно отправить данные Listbox обратно на контроллер, чтобы я смог сохранить их в БД?
<div class="form-group">
@Html.Label("Users", new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.ListBox("Users", ViewData["Users"] as
List<SelectListItem>,
new { @class = "form-control", id = "usersLb" })
<input class="btn btn-default" type="button" name="+"
id="add"
value="+" />
<input class="btn btn-default" type="button" name="-"
id="remove"
value="-" />
</div>
</div>
<div class="form-group">
@Html.Label("Users", new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.ListBox("SelectedUsers", ViewData["SelectedUsers"] as
List<SelectListItem>, new { @class = "form-control", id =
"selectedUsersLb"
})
</div>
</div>
------------------------------------------------------------
<script>
$(function () {
$(document)
.on("click", "#add", function () {
$("#usersLb
:selected").remove().appendTo("#selectedUsersLb");
var selected = $("usersLb :selected").text();
$.post("SelectedUserList", "Meeting", selected);
})
.on("click", "#remove", function () {
$("#selectedUsersLb
:selected").remove().appendTo("#usersLb");
});
});
</script>
-------------------------------------------------------------------
public class MeetingController : Controller
{
// GET: Meeting
public ActionResult Meeting()
{
ListUsers();
ViewData["SelectedUsers"] = new List<SelectListItem>();
return View();
}
public void ListUsers()
{
var ctx = new OruBloggenDbContext();
List<SelectListItem> userList = new List<SelectListItem>();
foreach (var item in ctx.Users)
{
userList.Add(new SelectListItem() { Text =
item.UserFirstname
+
" " + item.UserLastname, Value = item.UserID });
}
ViewData["Users"] = userList;
}
[HttpPost]
public ActionResult CreateMeeting(MeetingModel model)
{
var ctx = new OruBloggenDbContext();
ctx.Meetings.Add(new MeetingModel
{
MeetingTitle = model.MeetingTitle,
MeetingDesc = model.MeetingDesc,
MeetingStartDate = model.MeetingStartDate,
MeetingEndDate = model.MeetingEndDate,
MeetingUserID = User.Identity.GetUserId()
});
ctx.SaveChanges();
foreach(var item in ViewData["SelectedUsers"] as
List<SelectListItem>) {
ctx.UserMeetings.Add(new UserMeetingModel
{
MeetingID = ctx.Meetings.Last().MeetingID,
UserID = item.Value
});
};
ctx.SaveChanges();
return RedirectToAction("Meeting");
}
}
}