フォームから情報を取得してコントローラーに渡す単純な MVC アプリケーションを作成しました
意見:
@model MvcApplication1.Models.BetChargeModel
@using (Html.BeginForm())
{
<div>
@Html.TextBoxFor(m=>m.numerators[0]) / @Html.TextBoxFor(m=>m.denominators[0])
</div>
<div>
@Html.TextBoxFor(m => m.numerators[1]) / @Html.TextBoxFor(m => m.denominators[1])
</div>
<div>
<input type="submit" value="Calculate" />
</div>
}
コントローラ:
public ActionResult Index()
{
BetChargeModel model = new BetChargeModel();
model.numerators = new List<double>();
model.denominators = new List<double>();
model.denominators.Add(1);
model.denominators.Add(1);
model.numerators.Add(0);
model.numerators.Add(0);
return View(model);
}
[HttpPost]
public ActionResult Index(BetChargeModel model)
{
double odds1 = model.numerators[0] / model.denominators[0];
double odds = model.numerators[1] / model.denominators[1];
//other code
}
モデル:
public class BetChargeModel
{
public List<double> numerators { get; set; }
public List<double> denominators { get; set; }
public double result { get; set; }
}
これを実行してビューから情報をポストバックしようとすると、モデルが空に戻ってきます (null フィールドとゼロでいっぱいです)。Textbox のデータがモデルにバインドされないのはなぜですか?
(編集: モデルのプロパティと、分子、分母、および結果への参照を変更しましたが、簡潔にするためにここでは更新していません)