设置下拉项目选择MVC

时间:2012-03-21 16:43:52

标签: asp.net-mvc asp.net-mvc-3

我在外观中有相同选择列表的多个下拉列表,并希望设置按循环选择的下拉列表。

如何设置在mvc下拉列表中选择的特定一项下拉列表。

请帮忙。

4 个答案:

答案 0 :(得分:9)

Html.DropDownList方法有多个参数,其中一个是List<SelectListItem>SelectListItem的单个实例是您设置Selected属性的位置:

var item = new SelectListItem() {

    Selected = /* condition */,

    Value = "Some Value",
    Text = "Some Text"
};

<强>可替换地:

创建一个公开SelectList属性的SelectedValue集合:

Model.YourSelectList = new SelectList(items /* List<SelectListItem> */,
                                      "Value",
                                      "Text",
                                      37 /* selected value */);

答案 1 :(得分:2)

构建SelectList时,您可以使用http://msdn.microsoft.com/en-us/library/dd460123.aspx

在构造中设置所选项目

或者您可以通过它的SelectListItem属性(http://msdn.microsoft.com/en-us/library/system.web.mvc.selectlistitem.selected.aspx)在单个Selected上设置它,并使用选择列表的单参数构造函数,或直接将其传递给DropDownList方法

答案 2 :(得分:2)

使用HTML帮助程序ListBoxFor。

@Html.ListBoxFor(m => m.MyPropertyId, Model.MySelectList)

要构建项目列表,可以使用MultiSelectList。例如,在您的控制器中:

public ActionResult Index()
{
    // Get a collection of all product id's that should be selected.
    int[] productIds = _service.GetSomeProductIds();

    // Make a new select list with multiple selected items.
    ViewBag.List = new MultiSelectList(
        _service.Products, 
        "Id",                   // Name of the value field
        "Name",                 // Name of the display text field
         productIds );          // list of selected product ids

    return View();
}

然后在你看来:

@Html.ListBoxFor(m => m.ProductIds, (IEnumerable<SelectListItem>)ViewBag.List)

答案 3 :(得分:0)

MVC方法将自定义列表绑定到下拉列表并动态选择项目 如果您需要更多详细信息,请在下面发表评论

创建部分

@{
   List<SelectListItem> list = new List<SelectListItem>();
   list.Add(new SelectListItem { Text = "SALE", Value = "SAL" });
   list.Add(new SelectListItem { Text = "PURCHASE", Value = "PUR" });
}

<div class="form-group">
    @Html.LabelFor(model => model.SaleOrPurchase, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">           
        @Html.DropDownListFor(model => model.SaleOrPurchase, list, "-- Select Status --", new {@class= "form-control" })
        @Html.ValidationMessageFor(model => model.SaleOrPurchase, "", new { @class = "text-danger" })
    </div>
</div>

编辑部分

     List<SelectListItem> list = new List<SelectListItem>();
     list.Add(new SelectListItem { Text = "SALE", Value = "SAL" });
     list.Add(new SelectListItem { Text = "PURCHASE", Value = "PUR" });

     IEnumerable<SelectListItem> myCollection = list.AsEnumerable();

     ViewBag.SaleOrPurchase = new SelectList(myCollection, "Value", "Text", transactionTbl.SaleOrPurchase.ToString().Trim());