簡體   English   中英

使用mvc4綁定下拉列表

[英]Bind Dropdown using mvc4

我需要幫助來綁定模型中的下拉值。

Model.cs

public class BloodGroup
{
    public BloodGroup()
    {
        ActionsList = new List<SelectListItem>();
    }
    [Display(Name="Blood Group")]
    public int Group { get; set; }
    public IEnumerable<SelectListItem> ActionsList { get; set; }     
}

public class ActionType
 {
     public int GroupId { get; set; }
     public string BloodGroup { get; set; } 
 }

在控制器中:

List<ActionType> actionType = GetCourses();
bGroup.ActionsList = from action in actionType
                             select new SelectListItem
                             {
                                 Text = action.BloodGroup,
                                 Value = ((int)action.GroupId).ToString(),
                                 Selected = action.BloodGroup.Equals("A+")?true:false
                             };
return view;

public List<ActionType> GetCourses()
{
        return new List<ActionType> { 
                    new ActionType () {  GroupId = 1, BloodGroup = "A+"}, 
                    new ActionType () {  GroupId = 2, BloodGroup = "B+"},
                    new ActionType () {  GroupId = 3, BloodGroup = "O+" },
                    new ActionType () {  GroupId = 4, BloodGroup = "AB+" },
                    new ActionType () {  GroupId = 5, BloodGroup = "A-"}, 
                    new ActionType () {  GroupId = 6, BloodGroup = "B-"},
                    new ActionType () {  GroupId = 7, BloodGroup = "O-" },
                    new ActionType () {  GroupId = 8, BloodGroup = "AB-" }
             };
  }

它成功返回查看。 但鑒於綁定下拉列表會引發錯誤。

鑒於

@model MyMVC.Models.BloodGroup

@Html.DropDownListFor(m => m.Group, new SelectList(Model.ActionsList, "Value", "Text",true), "-- Select --")</li>

返回錯誤。

你調用的對象是空的。

Model .ActionsList設置為Null。

我不知道為什么它顯示null,盡管我繼承了模型。

我需要有關如何將SelectList值綁定到下拉列表的幫助

您需要在操作方法BloodGroup類的實例傳遞給視圖,如下所示:

public ActionResult YourAction()
{
        List<ActionType> actionType = GetCourses();
        var model = new BloodGroup()
        {
            ActionsList = (from action in actionType
                select new SelectListItem
                {
                    Text = action.BloodGroup,
                    Value = ((int) action.GroupId).ToString(),
                    Selected = action.BloodGroup.Equals("A+")
                })
        };
        return View(model);
}

然后在您看來:

@model  BloodGroup    
@Html.DropDownListFor(m => m.Group, Model.ActionsList,"-- Select --")

注意

使用上面的例子,它會告訴你沒有錯誤的觀點,但在你所選擇的項目downdownList無法正確顯示。 為了正確顯示所選項目,您需要將Grop屬性的類型更改為String ,如下所示:

public class BloodGroup
{
     //
    [Display(Name = "Blood Group")]
    public string Group { get; set; } 
    //
}

然后使用上述相同的動作方法,使您的視圖像:

@model  BloodGroup
@Html.DropDownList("Group", Model.ActionsList, "-- Select --")

暫無
暫無

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

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