我有两张不同的桌子.用户和项目详细信息.还有两个不同的控制器可以对这些表进行CRUD操作.现在,我有一个案例,在User CREATE操作中,我必须从ProjectDetails中的项目列表中选择项目.我尝试了
在用户模型中,我创建了这一行:
public IEnumerable<ProjectDetail> ProjectDetail { get; set; }
在控制器中,在create Action中,我添加了以下代码:
public ActionResult Create() { var model = new UserDetail { ProjectDetail = db1.ProjectDetails }; return View(model); }
在创建视图中,我试图获取项目ID列表,如下所示:
@Html.DropDownListFor( x => x.ProjectDetail, new SelectList(Model.ProjectDetail, "Project ID"))
但是,我运行,我得到的行数(等于项目数)
System.Data.Entity.DynamicProxies.ProjectDetails_F ###########(有些数字)..
请有人帮帮我吗?
问候,
哈日
[编辑] – 我检查了调试模式,发现以下..尝试附加图像..
我钻了那个Proxy的东西,在那里找到了ProjectID.我怎么能得到它?
您正在使用错误的重载,请改用:@Html.DropDownListFor( x => x.ProjectDetail, new SelectList(Model.ProjectDetail, "ProjectId","ProjectName")) // where ProjectId is the unique identifier field of `ProjectDetail` // and `ProjectName` is the text you want to show in the dropdown
在您的代码中,您没有告诉html帮助器使用哪些属性来为datavalue和datatext.您使用的重载是告诉htmlhelper选择哪个值的重载.