MVC @ Html.DropDownList在ViewBag中使用SelectList获取错误

我有一个我在控制器中创建的列表:

var PayList = new[] { new ListEntry { Id = 1, Name = "" }, new ListEntry { Id = 2, Name = "Yes" }, new ListEntry { Id = 3, Name = "No" } }; ViewBag.PayList = new SelectList(PayList, "Id", "Name"); 

在视图中我有以下内容:

  @Html.DropDownList("Pay", new SelectList(ViewBag.PayList,"Id","Name")) 

当我尝试显示它时,它会显示以下内容:DataBinding:’System.Web.Mvc.SelectListItem’不包含名为’Id’的属性。 不知道为什么这不起作用。

另外,如何将值默认为选择列表。 我喜欢将其默认为“是”。 我以为有一种方法可以从控制器那里做到这一点。

只是用

 @Html.DropDownList("Pay", ViewBag.PayList) 

在你看来

您的ViewBag.PayList已经是SelectList的类型。 我没有看到两次创建SelectList的原因,所以不应该只是:

 @Html.DropDownList("Pay", ViewBag.PayList) 

要么

 @Html.DropDownList("Pay", ViewBag.PayList as SelectList) 

(我不使用ViewBag,所以我不确定你的版本是否是强类型的)。

 Try this Way: 
@ViewBag.Msg
@ViewBag.Msg2
@Html.Label("Project Id") @ViewBag.ProjectId
@Html.Label("Project Name") @ViewBag.ProjectName
@foreach (var data in Model) { }
DestinationColumns SourceColumns
@data.Destinationvalue @data.Source