【发布时间】:2014-01-02 14:24:23
【问题描述】:
我有一个数据库驱动的 asp.net mvc 应用程序它有许多外键关系,但由于某种原因,当我想创建一个新的表时,我在外键和下拉框方面遇到问题记录我输入了所有字段,并在下拉框中选择了一个值,这些值是外键,但是当我单击保存时会引发此错误。
一个或多个实体的验证失败。看 'EntityValidationErrors' 属性以获取更多详细信息。代码优先
我知道是下拉列表导致了这种情况,因为我运行了一个 try catch,它生成了一个 .txt 文件,该文件输出了错误的特定详细信息,因为堆栈跟踪没有太多详细信息。我没有做任何与平常不同的事情。
我已经按照模型做了这个
public virtual Employee Employee { get; set; }
public virtual Employee Employee1 { get; set; }
public virtual Fuel_Card Fuel_Card { get; set; }
public virtual Vehicle Vehicle { get; set; }
这根据控制器的第一次创建方法
public ActionResult Create()
{
ViewBag.emp1 = new SelectList(db.Employees, "Employee_ID", "Employee_ID");
ViewBag.emp2 = new SelectList(db.Employees, "Employee_ID", "Employee_ID");
ViewBag.FuelCardNumber = new SelectList(db.Fuel_Card, "Fuel_Card_Number", "Fuel_Card_Number");
ViewBag.Registration = new SelectList(db.Vehicles, "Registration", "Registration");
return View();
}
这在第2
ViewBag.emp1 = new SelectList(db.Employees, "Employee_ID", "Employee_ID", fuel_allocation.Requesting_Employee);
ViewBag.emp2 = new SelectList(db.Employees, "Employee_ID", "Employee_ID", fuel_allocation.Authorising_Employee);
ViewBag.FuelCardNumber = new SelectList(db.Fuel_Card, "Fuel_Card_Number", "Fuel_Card_Number", fuel_allocation.Fuel_Card_Number);
ViewBag.Registration = new SelectList(db.Vehicles, "Registration", "Registration", fuel_allocation.Registration_Number);
这个在创建视图中
<div class="editor-field">
@Html.DropDownList("emp2", String.Empty)
@Html.ValidationMessageFor(model => model.Authorising_Employee)
</div>
我想知道以前是否有人遇到过这个问题?我尝试了各种不同的东西,当我使用 EditorFor 时外键关系有效,但是当我尝试使用下拉列表时它总是说它是空的。
我认为它可能对 2 个选择列表使用相同的数据库字段,但事实并非如此,因为我已经单独测试了它们
这是我输出到文件时遇到的错误
02/01/2014 14:52:56:类型为“Fuel_Allocation”的实体处于“已添加”状态 有以下验证错误: - 属性:“Authorising_Employee”,错误:“Authorising_Employee 字段是必需的。”
【问题讨论】:
-
如果您使用 Entity Framework,您可以查看我在 Solution for “Validation failed for one or more entities. See 'EntityValidationErrors' property for more details 上的回答。希望这会有所帮助...
标签: c# asp.net asp.net-mvc entity-framework