我有以下代码,我认为这样做我正在重载一个已经存在于 EnteredQuantity 的方法。问题是它几乎可以正常工作,我想我在这里比平时更深一点。当我说几乎可以工作时,下拉列表中的文本是 0,1,2 ... 1000,如果我从第二个下拉列表中选择“庭院切割”,那效果很好,但第一个下拉列表会添加十倍的所有内容例如。
如果我从 selectList1 中选择“1”,然后从 selectList2 中选择“1/2 Yard Cut”,我得到的值为 10.5,而不是 1.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" })