簡體   English   中英

MVC下拉列表設置所選值

[英]MVC dropdownlist set selected value

嗨,我嘗試按照以下設置下拉列表的選定值。 在我的控制器中:

u.Roles = new List<AspNetRole>();
foreach (var role in db.AspNetRoles)
{
    u.Roles.Add(role);
}

在我看來:

 @Html.DropDownList(Model.role.Id, new SelectList(Model.Roles, "Id", "Name"), htmlAttributes: new { @class = "form-control"})

但是仍然無法正常工作,我沒有獲得所選的值。 調試時,我可以看到Model.role.Id包含選定的值。

還要注意,Id是字符串類型的,因為它是經過哈希處理的。 我做錯了什么?

在MVC中有幾種顯示DropDownList的方法。 我喜歡以下方法。

注意:您需要模型中的SelectListItem的集合。

模型

public class MyModel
{
    public int SelectedId { get; set; }
    public IList<SelectListItem> AllItems { get; set; }

    public MyModel()
    {
        AllItems = new List<SelectListItem>();
    }
}

調節器

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new MyModel();
        model.AllItems = new List<SelectListItem>
        {
            new SelectListItem { Text = "One",  Value = "1"},
            // *** Option two is selected by default ***
            new SelectListItem { Text = "Two",  Value = "2", Selected = true},
            new SelectListItem { Text = "Three",  Value = "3"}
        };
        return View(model);
    }

    [HttpPost]
    public ActionResult Index(MyModel model)
    {
        // Get the selected value
        int id = model.SelectedId;
        return View();
    }
}

視圖

@model DemoMvc.Controllers.MyModel
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
    @Html.DropDownListFor(x => x.SelectedId, Model.AllItems)
    <input type="submit" value="Submit" />
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM