2012-10-11 72 views
2

有人能告訴我我在做什麼在Dropdownlist查看錯誤?我認爲它期望SelectList的下拉列表?先謝謝你。WebGrid中的下拉列表 - MVC4

我的模型:

public class AppointmentModel 
    { 
     public int CustomerID { get; set; } 
     public string LastName { get; set; } 
     public string FirstName { get; set; }   
     public List<DateTime> ApptDates { get; set; } 
    } 

查看:

@{ 
    var grid = new WebGrid(Model, rowsPerPage: ViewBag.RowsPerPage);  
    @grid.GetHtml(columns: grid.Columns(
     grid.Column(columnName: "LastName", header: "Last Name", canSort: true, format: @<text>@item.LastName</text>), 
     grid.Column(columnName: "LastName", header: "First Name", canSort: true, format: @<text>@item.Firstname</text>), 
     grid.Column(columnName: "ApptDates", header: "Appointment Dates", format: @Html.DropDownList(@item.ApptDates)) 
     ));            
} 

以下更改解決了該問題:

public class AppointmentModel 
    { 
     public int CustomerID { get; set; } 
     public string LastName { get; set; } 
     public string FirstName { get; set; }   
     public DateTime ApptDt { get; set; } 
     public IEnumerable<SelectListItem> ApptDatesSelectList { get; set; } 
    } 

查看

@{ 
    var grid = new WebGrid(Model, rowsPerPage: ViewBag.RowsPerPage);  
    @grid.GetHtml(columns: grid.Columns(
     grid.Column(columnName: "LastName", header: "Last Name", canSort: true, format: @<text>@item.LastName</text>), 
     grid.Column(columnName: "LastName", header: "First Name", canSort: true, format: @<text>@item.Firstname</text>), 
     grid.Column(columnName: "ApptDates", header: "Appointment Dates", format: @<text>@Html.DropDownList("ApptDt", (IEnumerable<SelectListItem>)@item.ApptDatesSelectList)</text>) 
     ));            
} 
+0

是ApptDates日期的委任名單還是對潛在的約會日期列表? – Maess

+0

AppDates是預約日期的列表。 – rk1962

回答

3

假設回答我的意見是,每次約會都有一個日期,你首先需要一個屬性添加到模型的具體日期:

public class AppointmentModel 
    { 
     public int CustomerID { get; set; } 
     public string LastName { get; set; } 
     public string FirstName { get; set; } 
     public DateTime AppointmentDate {get; set;}   
     public List<DateTime> ApptDates { get; set; } 
    } 

然後你需要你的潛在的約會在SelectList一次你這樣做,你可以實現像這樣:

@{ 
    var grid = new WebGrid(Model, rowsPerPage: ViewBag.RowsPerPage);  
    @grid.GetHtml(columns: grid.Columns(
     grid.Column(columnName: "LastName", header: "Last Name", canSort: true, format: @<text>@item.LastName</text>), 
     grid.Column(columnName: "LastName", header: "First Name", canSort: true, format: @<text>@item.Firstname</text>), 
     grid.Column(columnName: "ApptDates", header: "Appointment Dates", format: @<text> @Html.DropDownList(@item.AppointmentDate, yourSelectList)</text>) 
     ));            
} 
+0

我會盡力讓你知道結果。謝謝。 – rk1962

+0

您的解決方案奏效,謝謝。我已經更新了描述中的更改。 – rk1962

+0

我無法接收控制器中的選定屬性。選定列表(包含)類型與我要填寫的屬性相同。可能是什麼原因 – albatross