而不是使用基于查找表的查询填充下拉列表,是否有办法将查找中的所有记录作为数据源并简单地“转到”将找到的记录在查询?
感谢
答案 0 :(得分:0)
我在这里唠叨,但听起来你有一个来自数据库的对象集合(为了争论让我们说雇员),你想要一个下拉,这将填充与该集合中的字段。你可以用Linq完成这个。
var emps = from e in db.Employees
select e;
var ddlSource = emps.Select(x =>
new ListItem {
Text = x.LastName + ", " + x.FirstName,
Value = x.ID
};
然后,您可以将DropDownList绑定到ddlSource
IQueryable。
答案 1 :(得分:0)
我想你已经在数据库中选择了项目,并希望在填充下拉列表时选择它。请考虑以下示例
查看模型
public class TestVM
{
public int CategoryId { get; set; }
public IEnumerable<SelectListItem> Categories { get; set; }
}
在控制器中
public ActionResult Index()
{
TestVM objTestVM = new TestVM();
objTestVM.Categories = new List<SelectListItem>() {
new SelectListItem() { Value="1", Text="Food"},
new SelectListItem() { Value="2", Text="Movie"}
};
objTestVM.CategoryId = 2;//get this value from DB
return View(objTestVM);
}
在视图中
@model MvcApplication4.Models.TestVM
@using(Html.BeginForm())
{
@Html.DropDownListFor(m => m.CategoryId, Model.Categories, "--select--")
<input type="submit" value="submit" />
}
现在它会自动选择下拉列表中的类别,在这种情况下为2。如果选择了其他类别并提交页面,则会将新的categoryid发回控制器后期操作。