在 MVC 3 中,我有一个像这样的 EF 代码第一类:
public class Client
{
[Key]
[MaxLength(4)]
[Display(Name="labClientID", ResourceType=typeof(Resources.Translations.Client))]
public string ClientID { get; set; }
[MaxLength(50)]
[Display(Name="labName", ResourceType=typeof(Resources.Translations.Client))]
public string Name { get; set;}
}
客户端用于例如以下 Person 类:
public class Person
{
[Key]
[MaxLength(50)]
public string UserID { get; set; }
[MaxLength(50)]
public string LastName { get; set; }
[UIHint("ForeignKey")]
[MaxLength(4)]
public string ClientID { get; set; }
public virtual Client Client { get; set; }
}
客户的 ID 为 01,02,03 等
在编辑视图中,我对编辑人员视图有以下剃刀语句:
@Html.DropDownListFor(m => m.ClientID , new SelectList(ViewBag.Clients, "ClientID", "Name"))
ViewBag.Clients 是在之前构建的:
ViewBag.Clients = (from x in Context.Client select new {x.ClientID, x.Name});
现在出现了奇怪的部分:独立于我为 person 类中的 ClientID 选择的值,当我打开包含 DropDownListFor 语句的编辑视图时,DropDownList 总是显示来自客户端表的第二个条目。
我调试了客户端 viewbag 并且它包含正确的值,我还使用了 editorfor 而不是 DropDownListFor 并且 person 实体中的 clientid 具有正确的值。
你知道问题出在哪里吗?