1
我正在使用複選框從列表中選擇最多11個足球運動員。他們根據他們的演奏位置分開並命名。如何在JavaScript中將複選框的值從MVC中傳遞給控制器?
@if(item.PlayerPosition.FantasyFootball_PlayerToSeason.Select(x => x.PositionID == 1).FirstOrDefault()) {
@Html.CheckBox("goalkeepers", false)
}
@if(item.PlayerPosition.FantasyFootball_PlayerToSeason.Select(x => x.PositionID == 2).FirstOrDefault()) {
@Html.CheckBox("defenders", false)
}
@if(item.PlayerPosition.FantasyFootball_PlayerToSeason.Select(x => x.PositionID == 3).FirstOrDefault()) {
@Html.CheckBox("midfielders", false)
}
@if(item.PlayerPosition.FantasyFootball_PlayerToSeason.Select(x => x.PositionID == 4).FirstOrDefault()) {
@Html.CheckBox("forwards", false)
}
我正在使用下面的一段JavaScript按鈕在點擊按鈕時彈出框中按順序顯示每個選定的值。
$('#button').click(function() {
alert($('input[type="checkbox"]:checked').eq(0).val()); // 1st
alert($('input[type="checkbox"]:checked').eq(1).val()); // 2nd
alert($('input[type="checkbox"]:checked').eq(2).val()); // 3rd
alert($('input[type="checkbox"]:checked').eq(3).val()); // 4th
alert($('input[type="checkbox"]:checked').eq(4).val()); // 5th
alert($('input[type="checkbox"]:checked').eq(5).val()); // 6th
alert($('input[type="checkbox"]:checked').eq(6).val()); // 7th
alert($('input[type="checkbox"]:checked').eq(7).val()); // 8th
alert($('input[type="checkbox"]:checked').eq(8).val()); // 9th
alert($('input[type="checkbox"]:checked').eq(9).val()); // 10th
alert($('input[type="checkbox"]:checked').eq(10).val()); // 11th
});
但是,我真正想用這些值做的事情是將它們傳遞給控制器,以便我可以將它們記錄到數據庫中。這些複選框放置在局部視圖中,不屬於此特定模型的一部分,這就是爲什麼它不那麼直接(至少據我所知)。
基本上,一切工作,因爲我想除了不能記錄每個已選擇的球員的ID。我在想,必須有一種方法來做到這一點 - 要麼擴大我稍微做了些什麼,要麼採用不同的方法。
理想情況下,我想單獨記錄每個值,而不是數組。
這裏是我的控制器中的提取物,我想這些值添加到我的表(目前註釋掉):
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "FantasyTeamID,Id,FantasyTeamTypeID,Player1,Player2,Player3,Player4,Player5,Player6,Player7,Player8,Player9,Player10,Player11,FirstEntered,LastUpdated,FormationID,GameweekID")] FantasyFootball_FantasyTeam fantasyfootball_fantasyteam)
{
if (ModelState.IsValid)
{
db.FantasyFootball_FantasyTeam.Add(fantasyfootball_fantasyteam);
fantasyfootball_fantasyteam.Id = User.Identity.GetUserId();
fantasyfootball_fantasyteam.FantasyTeamTypeID = 1;
//fantasyfootball_fantasyteam.Player1 = 2398;
//fantasyfootball_fantasyteam.Player2 = 491;
//fantasyfootball_fantasyteam.Player3 = 850;
//fantasyfootball_fantasyteam.Player4 = 461;
//fantasyfootball_fantasyteam.Player5 = 2845;
//fantasyfootball_fantasyteam.Player6 = 482;
//fantasyfootball_fantasyteam.Player7 = 1028;
//fantasyfootball_fantasyteam.Player8 = 2516;
//fantasyfootball_fantasyteam.Player9 = 2586;
//fantasyfootball_fantasyteam.Player10 = 2230;
//fantasyfootball_fantasyteam.Player11 = 2893;
fantasyfootball_fantasyteam.FirstEntered = DateTime.Now;
fantasyfootball_fantasyteam.FormationID = 1;
fantasyfootball_fantasyteam.GameweekID = 47;
db.SaveChanges();
return RedirectToAction("Index");
}
謝謝您的回覆,但我不太清楚所有事情應該如何組合在一起。什麼需要去哪裏?我已經添加了一些來自我的控制器的代碼,可以幫助你解釋這一點。非常感謝。 – blurtbasin