Dev*_*per 26 .net c# asp.net-mvc-3
这段代码工作正常
List<StateModelView> stateList = (from x in db.States
select new StateModelView {
ID = x.ID,
StateName = x.StateName
}).OrderBy(w => w.StateName).ToList();
ViewBag.StateList = new SelectList(stateList, "ID", "StateName");
Run Code Online (Sandbox Code Playgroud)
在我的HTML下
@Html.DropDownList("StateList", ViewBag.StateList)
Run Code Online (Sandbox Code Playgroud)
无论如何我得到了错误
CS1973:'System.Web.Mvc.HtmlHelper'没有名为'DropDownList'的适用方法,但似乎有一个名称的扩展方法.无法动态分派扩展方法.考虑转换动态参数或调用扩展方法而不使用扩展方法语法.
我怎么解决它?
M.B*_*ock 72
这ViewBag是一个dynamic对象,不能直接从您的View中使用(这基本上就是错误所说的).你需要施展它:
@Html.DropDownList("StateList", (SelectList) ViewBag.StateList)
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用ViewData虽然它也可能需要铸造.
您需要将ViewBag项(匿名)转换为SelectList:
@Html.DropDownList("StateList", (SelectList)ViewBag.StateList)
Run Code Online (Sandbox Code Playgroud)
另一种解决这个转换问题的方法,也就是我采用的首选方法,就是使用View Model并绕过ViewBag.
| 归档时间: |
|
| 查看次数: |
24991 次 |
| 最近记录: |