チェックボックスが開いているので、自分のオプションがあり、選択した場合は、選択したアイテムの値を書きたいと思います。よく私は、任意のオプションをクリックし、それを提出するたびに、値がURLに表示されているが、私はそれを書き出すように見えるカント...MVC5ユーザーからチェックボックスの値を書き込む方法
ビュー(Index.cshtml):
@using vgsimulator.Models
@model List<vgsimulator.Models.Album>
@{
ViewBag.Title = "Index";
Album ka = new Album();
}
@using (Html.BeginForm("Index", "Home", FormMethod.Get))
{
for (var i = 0; i < Model.Count(); i++)
{
@Html.HiddenFor(it => it[i].Id)
@Html.DisplayFor(it => it[i].Name)
@Html.CheckBoxFor(it => it[i].Checked)
}
<input id="Submit1" type="submit" value="submit"/>
<p>@Viewbag.Values</p> //here we print values checked
}
モデル( Album.cs):
public class Album
{
public int Id { get; set; }
public string Name { get; set; }
public bool Checked { get; set; }
}
コントローラ(HomeController.cs):あなたが選択した値を表示したい場合は
[HttpGet]
public ActionResult Index()
{
var list = new List<Album>
{
new Album { Id = 1, Name = "Aquafina", Checked = false },
new Album { Id = 2, Name = "Mulshi Springs", Checked = false },
new Album { Id = 3, Name = "Alfa Blue", Checked = false },
.....
};
return View(list);
}
[HttpPost]
public ActionResult Index(List<Album> list)
{
//ViewBag.Values = x?;
return this.View(list);
}
あなたのフォームはGETを使用しているため、データは実際に最初のIndex()アクションに送信されます – Kurorion
@Kurorion hmm私はそれを得ることができません。そしてお返事 –
あなたのフォームから 'FormMethod.Get'を取り除くと、' public ActionResult Index() 'の代わりに' public ActionResult Index(リストリスト) 'を呼び出すPOST経由で投稿します。 –
Kurorion