简单的下拉列表mvc4从数据库检索

本文关键字:数据库 检索 mvc4 下拉列表 简单 | 更新日期: 2023-09-27 18:27:19

我正试图从数据库中的一个查询中创建一个简单的下拉列表。

我读了很多关于这个的书,说实话我很困惑。这可能是我找到的最好的教程

模型是这样的。

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 to Entities无法识别方法"System.String ToString()"方法,并且此方法无法转换为存储表达式。

简单的下拉列表mvc4从数据库检索

使用SqlFunctions.StringConvert

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

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