###前提・実現したいこと
ASP.NET MVC5にて簡易な入力画面と蓄積したデータの一覧画面を開発しています。
ASP.NET 4.5.2のMVCテンプレートを利用しています。
モデル定義後、「Entity Frameworkを使用した、ビューがあるMVC5コントローラー」を利用し、コントローラとビューを自動生成しています。
実現したいこと:ラジオボタンでチェックされた項目の値を取りたい。
###発生している問題・エラーメッセージ
画面上でラジオボタン「B」を選択しても、取得した値が想定と異なり「A」となる。
※一覧画面上でも、デバッグモードでも同様に、一つ目の選択肢の値が取得されてしまう。
###追記###
上記動作を確認した手順は以下の通りです。
Controllerの下記行にブレークポイントを設定し、デバックを実行(F5)しました。入力画面にてラジオボタン「B」を選択し、DBへの保存処理を実行したところで変数に設定された値を確認したところ「A」がセットされていた。
###該当のソースコード
C#
1View 2@using (Html.BeginForm()) 3{ 4 @Html.ValidationSummary(true) 5<div class="form-horizontal"> 6<div class="form-group"> 7 @Html.LabelFor(model => model.TEST, htmlAttributes: new { @class = "control-label col-md-2" }) 8 <div class="col-md-10"> 9 <div class="radio-inline"> 10 @Html.RadioButtonFor(model => model.TEST, "A", new { tabindex = 1 })A 11 </div> 12 <div class="radio-inline"> 13 @Html.RadioButtonFor(model => model.TEST, "B", new { tabindex = 2 })B 14 </div> 15 @Html.ValidationMessageFor(model => model.TEST, "*", new { @class = "text-danger" }) 16 </div> 17 </div> 18 </div> 19}
C#
1Model 2public class Test 3 { 4 [Required] 5 [Display(Name = "TEST")] 6 public string TEST { get; set; } 7 }
C#
1Controller 2public JsonResult Create(Main main) 3 { 4 try 5 { 6 if (ModelState.IsValid) 7 { 8 if (main.Id > 0) 9 { 10 var CurrentSUb = db.Subs.Where(p => p.Id == main.Id); 11 12 foreach (Sub ss in CurrentSUb) 13 db.Subs.Remove(ss); 14 15 foreach (Sub ss in main.Subs) 16 db.Subs.Add(ss); 17 18 db.Entry(main).State = EntityState.Modified; 19 } 20 //Perform Save 21 else 22 { 23 db.Mains.Add(main); 24 } 25 26 db.SaveChanges(); 27 28 return Json(new { Success = 1, Id = main.Id, ex = "" }); 29 30 } 31 else 32 { 33 return Json(new { Success = 2, ex = "Required items are not entered." }); 34 } 35 } 36 catch (Exception ex) 37 { 38 return Json(new { Success = 0, ex = ex.ToString() }); 39 } 40 }
###試したこと
name属性やid属性を付与してみたりしましたが、結果は変わりませんでした。
回答1件
あなたの回答
tips
プレビュー