我创建了mvc3应用程序。 使用EF从表中填充下拉列表的地方。
现在我的two dropdownlists
index.cshtml
分别来自不同的表格。
code index.cshtml:
我已将模型视为实体,因为它同时包含我的表table1
和table2
@model Mapping.Models.mydataEntities1
但问题是在这里我无法从两个表中选择值。 :(
像下面的代码只是在我给的时候才能工作 模型@model Mapping.Models.table1
但需要从不同的表格中选择两个下拉列表
@using (Html.BeginForm())
{
@Html.DropDownListFor(
x => x.CategoryId,
new SelectList(Model.Categories, "Value", "Text"),
"-- Select category --"
)
<input type="submit" value="OK" />
}
我该怎么做?
我用过EF
public partial class mydataEntities1 : DbContext
{
public mydataEntities1()
: base("name=mydataEntities1")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public DbSet<table1> table1 { get; set; }
public DbSet<table2> table2 { get; set; }
}
}
答案 0 :(得分:1)
我建议使用实际的“模型”,而不是直接将数据实体推送到视图中。这样的东西可能是你应该用于模型的东西:
public class MyModel
{
public Mapping.Models.table1 table1;
public Mapping.Models.table2 table2;
}
然后你的模型就会变成
@model MyModel
答案 1 :(得分:1)
我不是EF用户,但假设您的模型已填充且工作正常 以下代码应该有效
@Html.DropDownListFor(
x => x.table1.CategoryId,
new SelectList(Model.table1.Categories, "Value", "Text"),
"-- Select category --"
)
@Html.DropDownListFor(
x => x.table2.CategoryId,
new SelectList(Model.table2.Categories, "Value", "Text"),
"-- Select category --"
)
但我强烈建议您创建一个ViewModel,以便将您的数据公开给View而不是您的域实体或直接存储库。
答案 2 :(得分:0)
查看代码
<%: Html.DropDownList("courses","--select--")%>
控制器代码
公共ActionResult索引() {newclass nw = new newclass();
IEnumerable<SelectListItem> lt = nw.method().Select(c => new SelectListItem
{
Text = c.EmpName,
Value = c.EmpId.ToString()
});
ViewData["courses"] = lt;
return View();
}
模型代码
公共类newclass { DataClasses2DataContext db = new DataClasses2DataContext(); public IEnumerable方法() { List lt =(from db.Employees中的val选择新的Class1 {EmpName = val.EmpName,EmpId = val.EmpId})。Distinct()。ToList(); if(lt!= null) { var values = from val in lt orderby val.EmpId select val; 回报值; } 其他 return null; }
}
public class Class1
{
public int EmpId{get;set;}
public string EmpName { get; set; }
public string location { get; set; }
public Int64 Phno{get;set;}
}
将模型类命名空间添加到控制器并尝试希望这将完美地填充asp.net mvc3中的dropdownlist