나는 radiobuttonitems의 동적 목록을 전달하고 다른 모델 정보와 함께 선택한 라디오 버튼을 가져와야합니다.모델에서 선택한 라디오 버튼을 어떻게 되돌릴 수 있습니까?
public class MyItem
{
public int Id { get; set; }
public String Name { get; set; }
public bool Selected { get; set; }
}
public class MyFormModel
{
public List<MyItem> RadioItems;
public String SomeQuestion;
public String SelectedButton { get; set; }
public String Answer { get; set; }
}
public class HomeController : Controller
{
public ActionResult Index()
{
var items = new List<MyItem>();
items.Add(new MyItem() { Id = 1, Name = "Male", Selected = true });
items.Add(new MyItem() { Id = 2, Name = "Female", Selected = false });
var m = new MyFormModel();
m.RadioItems = items;
m.SomeQuestion = "What's your favorite color?";
return View(m);
}
[HttpPost]
public ActionResult Index(MyFormModel model)
{
Console.WriteLine(model.Answer); //works
Console.WriteLine(model.SelectedButton); //does not work
return null;
}
보기
@model WebApplication1.Controllers.MyFormModel
@using (Html.BeginForm("Index", "Home", new {ReturnUrl = ViewBag.ReturnUrl}, FormMethod.Post, new {@class = "form-horizontal", role = "form"}))
{
foreach (var r in Model.RadioItems)
{
@Html.RadioButton("MyGroup",r.Id,r.Selected) @Html.Label(r.Name)<br/>
}
@Html.Label(Model.SomeQuestion) @Html.TextBoxFor(m=>m.Answer)
<input id="Submit1" type="submit" value="submit" />
}
내가 내가 선택한 라디오 버튼을 확인할 수 있습니다 포스트 백에 너무 그렇게해야합니까? 간단한 무언가가 빠져 있어야합니다.
사용자가 버튼을 변경할 수 있습니다. 포스트 백에서 그 값을 가져와야합니다. – WhiskerBiscuit
@WhiskerBiscuit 예. 값이 게시 시점에 무엇이든 관계없이 모델에 저장됩니다. – ganders