私は次のコードを持っています。そうすることで、EnteredQuantity で既に存在するメソッドをオーバーロードしていると思います。問題は、ほとんど機能していることです。私はここでいつもより少し深いところにいると思います。ほとんどうまくいくと言うと、ドロップダウンのテキストは 0,1,2 … 1000 で、2 番目のドロップダウンから「ヤード カット」を選択すると問題なく動作しますが、最初のドロップダウンではすべてが 10 の係数で追加されます例えば。
selectList1 から「1」を選択し、次に selectList2 から「1/2 Yard Cut」を選択すると、1.5 ではなく 10.5 という値が得られます。
今、私はそれをこのように機能させようとするべきではないと思いますが、コードは私のものではありません。自分のニーズに合わせて機能させようとしているだけです。理想的には、このビューでコメントアウトされたコードから selectList1 + selectList2 の値を一緒に追加し、その値を更新前に EnteredQuantity にするといいと思います。
どうやってやるの?
コード:
@Html.LabelFor(model => model.EnteredQuantity, new { @class = "qty-label" })<text>:</text>
var maxQty = 1000;
var selectList1 = new List<SelectListItem>(maxQty + 1);
for (var i = 0; i <= maxQty; i++)
{
selectList1.Add(new SelectListItem { Text = i.ToString(), Value = i.ToString() });
}
@Html.DropDownListFor(model => model.EnteredQuantity, selectList1, new { @class = "qty-input" })
<text> + </text>
var selectList2 = new SelectList(new []
{
new {ID="0",Name="0 Yard Cut"},
new {ID="0.25",Name="1/4 Yard Cut"},
new {ID="0.50",Name="1/2 Yard Cut"},
new {ID="0.75",Name="3/4 Yard Cut"},
}, "ID","Name",0);
ViewData["selectList2"]=selectList2;
//@Html.DropDownList("list",ViewData["selectList2"] as SelectList);
@Html.DropDownListFor(model => model.EnteredQuantity, selectList2, new { @class = "qty-input1" })