我刚开始使用MVC 5设计模式进行开发,我试图用数据库中的数据填充我的DropDownList
,这就是我在我的国家模型中所拥有的:
public class Country
{
public DataTable GetAllCountries()
{
string theSql = "SELECT * FROM Country";
IDataAccess dataAccess = new DataAccess();
return dataAccess.GetData(theSql);
}
}
然后在我的控制器中我有:
public ActionResult Index()
{
List<SelectListItem> objResult = new List<SelectListItem>();
Models.Country country = new Models.Country();
DataTable result = country.GetAllCountries();
foreach(DataRow item in result.Rows)
{
SelectListItem temp = new SelectListItem();
temp.Value = item["id"].ToString();
temp.Text = item["country"].ToString();
objResult.Add(temp);
}
ViewBag.DropDownResult = objResult;
return View();
}
然后在我的部分视图中,我有:
@model MyProject.Models.Country
@Html.DropDownListFor(ViewBag.DropDownResult as List<SelectListItem>)
Howverver on DropDownListFor
我接受了这个错误:
方法没有重载&#39; DropDownListFor&#39;需要1个参数
有谁知道我做错了什么?如果我也正确地遵循MVC模式吗?
谢谢你们
答案 0 :(得分:1)
您需要指定要在哪个对象中显示的属性。
@Html.DropDownListFor
需要至少2个参数。第一个应该是对象,第二个是包含项目的列表。
类似的东西:
@model MyProject.Models.Country
@Html.DropDownListFor(m => m.SomeProperty, ViewBag.DropDownResult as List<SelectListItem>)