2014-10-22 79 views
1

我想从数据库中的查询做一个简单的下拉列表。简单的下拉列表mvc4从数据库检索

我读过这么多,说实话我很困惑。这可能是我的最佳教程found

模型是这样的。

public class TodoMembership 
{ 
public int Id { get; set; } 
public string UserName { get; set; } 
public string UserTodoName { get; set; } 
public string Category { get; set; } 
} 

控制器很简单。

public ActionResult Index() 
{ 
//connection already sorted 
IEnumerable<SelectListItem> items = db.TodoMemberships.Select(c => new SelectListItem 
       { 
       Value = c.Id.ToString(), 
       Text = c.Category 
       }); 
ViewBag.Categories = items; 
return View(); 
} 

而这在我的HTML。 @ Html.DropDownList( “ID”,(IEnumerable的)ViewBag.Categories)

这是我的错误,

LINQ到实体无法识别方法'System.String的ToString()方法,并且此方法不能转换为商店表达式。

回答

2

使用SqlFunctions.StringConvert

IEnumerable <SelectListItem> items = db.TodoMemberships.Select(c => new SelectListItem { 
    Value = SqlFunctions.StringConvert((double) c.Id), 
     Text = c.Category 
}); 
+0

我现在离开这个.....这个调用在下面的方法或属性之间是模棱两可的:'System.Data.Objects.SqlClient.SqlFunctions.StringConvert(double?)'和'System.Data.Objects .SqlClient.SqlFunctions.StringConvert(decimal?)' – Grubbypandas 2014-10-22 03:58:40

+0

谢谢你的工作。我今天找到了新的方法!谢谢! – Grubbypandas 2014-10-22 04:26:43

0
ViewBag.Categories = new SelectList(db.TodoMemberships, "Id", "Category"); 

这样的字符串转换将在应用程序,而不是SQL服务器上执行。

+0

真棒,这工作得很好!现在要弄清楚如何过滤结果。 – Grubbypandas 2014-10-22 04:02:45