У меня есть модель представления, содержащая информацию, которую я использую для выпадающего списка вида:asp.net mvc5 - Передача выбранного элемента списка Идентификаторы обратно к контроллеру
public class AddPlayersToGame
{
public string GameTitle { set; get; }
public int GameID { set; get; }
public List<SelectListItem> Players { set; get; }
public int PlayerID { get; set; }
public int[] SelectedPlayers { set; get; }
}
Это мой взгляд, который просто отображает выпадающий список, содержащий список игроков, чтобы выбрать из:
@model WebGameProj.ViewModels.AddPlayersToGame
<div>
{
@Html.DropDownListFor(x => Model.PlayerID, Model.Players)
<input type="submit" />
}
</div>
Это методы контроллера, я использую:
public ActionResult AddPlayersView(int id)
{
var GameSelected = db.Games.Find(id);
if (GameSelected== null)
{
return HttpNotFound();
}
var np = new AddPlayersToGame { GameID = id, GameTitle = GameSelected.GameTitle };
np.Players = db.Players.Select(m => new SelectListItem
{
Text = m.PlayerUserName,
Value = m.PlayerId.ToString()
}).ToList();
return View(np);
}
[HttpPost]
public ActionResult AddPlayersView(AddPlayersToGame model)
{
foreach (var item in model.SelectedPlayers)
{
var SelPlayer = db.Players.Find(model.PlayerID);
if (SelPlayer== null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
if (SelPlayer != null)
{
Game GameSelected = new Game();
GameSelected.GamePlayers.Add(SelPlayer);
db.Entry(GameSelected).State = EntityState.Modified;
db.SaveChanges();
}
}
return RedirectToAction("GameDetailsView");
}
Итак, в основном я хочу иметь представление, которое отображает раскрывающийся список игроков, и когда некоторые игроки будут выбраны, метод post затем найдет каждого игрока в базе данных, используя их идентификаторы, которые передаются обратно через раскрывающийся список список в представлении, затем добавьте их в текущий список игроков для этой игры.
Вы можете использовать JQuery для получения выбранного Идентификаторы. –
Вы пытались найти что-то подобное? Скажите, [this] (http://stackoverflow.com/questions/25013223/asp-net-mvc-multiple-select-dropdown) помощь? – Andrei
Вы можете выбрать только один элемент за раз в раскрывающемся списке. Для этой цели вам нужно использовать раскрывающийся список с несколькими выборами (jQuery UI имеет список с несколькими выборами). – ataravati