2014-03-25 58 views
-2

在我的MVC項目,我有一個Course模型是這樣的:如何爲SelectList指定SelectedValue?

public class Course 
{ 
    [Key] 
    public int CourseId { get; set; } 

    [Required, MaxLength(50)] 
    public string Name { get; set; } 

    // bunch of other properties 
} 

我在我的行動創造一些Courses一個的SelectList

var user = context.Users.Include("Courses") 
      .FirstOrDefault(x => x.Email == User.Identity.Name); 
var courses = user.Courses.OrderBy(x => x.Name); 
ViewBag.Courses = new SelectList(courses, "CourseId", "Name");` 

我有一個可爲空courseId參數我Action這樣的:

public ActionResult Index(int? courseId) 

如果它不爲空,我想改變DEF行兇選擇的值到course.In爲了做到這一點我想:

if (courseId != null) 
{ 
    var selectedCourse = courses 
     .FirstOrDefault(x => x.CourseId == courseId.Value); 
    if (selectedCourse != null) 
    { 
     ViewBag.Courses = new SelectList(courses, "CourseId", "Name", selectedCourse.CourseId); 
    } 
} 

但它不工作,selectedCourse的規定Course我看到在我的列表中的第一選擇當然不是每null。相反時間。我錯過了什麼?

編輯:我在我的View創建DropdownList這樣的:

@Html.Bootstrap().DropDownList("Courses", (SelectList)ViewBag.Courses) 
+0

使用空合併運算符''??你 – Jonesopolis

+0

可以只設置的值'CourseId',它應該工作。如果該值有效(例如,「1,2,3,4」列表中的'2'),它將在「