绑定mvc4下拉列表中的数据集合

时间:2013-11-19 07:17:03

标签: asp.net-mvc-4 razor

在我看来,我的代码如下所示。

@if (!Model.DisableBuyButton || !Model.DisableWishlistButton)
{

    <div class="qutblk">

    <span>@Html.LabelFor(model => model.EnteredQuantity, new { @class = "input-small" }, " :")</span>
        @if (Model.AllowedQuantities.Count > 0)
        {
            @Html.DropDownListFor(model => model.EnteredQuantity, Model.AllowedQuantities, new { @class = "input-small" })
        }
        else
        {
            @Html.TextBoxFor(model => model.EnteredQuantity, new { @class = "input-small" })
        }




} @Html.Widget("productdetails_add_info")
</div>

如果我ALLOWEDQUANTITIES.COUNT更多,那么0.I需要数量下拉列表。

例如,如果数量为5,我的下拉列表中需要1,2,3,4,5个数字。如果数量为7,我的下拉列表中需要1,2,3,4,5,6,7个数字。

但是我的问题是我无法在下拉列表中绑定数字这样的数据,这意味着如果数量为5,则只显示下拉列表中的5个数字,而不显示1,2,3,4,5

1 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

public static class MyLists
    {
    public static List<SelectListItem> GetList()
    {
    List<SelectListItem> result = new List<SelectListItem>(int AllowedQuantities)

    for(int i = 0; i < AllowedQuantities; i++)
    {
     var number = i + 1;
     var item = new SelectListItem {text = number.ToString(), value = number.ToString()};
     result.Add(item);
    }

    return result
    }
    }

在您看来:

@Html.DropDownListFor(model => model.EnteredQuantity, MyLists.GetList(model.EnteredQuantity), new { @class = "input-small" })