【发布时间】:2015-11-13 08:18:21
【问题描述】:
我正在将数据设置为 POST 操作方法的模型对象,如下所示
一旦我展开上面的对象,它就有以下属性
一旦我在 ListProductFields IList 上方展开,它具有以下属性
一旦我展开 ListProductFields IList 的对象值,[0]th 值,它具有以下属性及其值
这是相关的模型类文件
public class AddNewProduct
{
public string Product_ID { get; set; }
public string ProductTypeID { get; set; }
public string ProductCategoryID { get; set; }
public string Subsidary_ID { get; set; }
public string Field_ID { get; set; }
public string ProductFieldNameEn { get; set; }
public string ProductFieldNameAr { get; set; }
public string ApprovalStatus { get; set; }
public string Status { get; set; }
public IList<AB_ProductTypeCategoryField> ListProductFields { get; set; }
}
public partial class AB_ProductTypeCategoryField
{
public string ProductFieldID { get; set; }
public string ProductFieldNameEn { get; set; }
public string ProductFieldNameAr { get; set; }
public string ProdcutFieldDiscriptionEn { get; set; }
public string ProductFieldDiscriptionAr { get; set; }
public string Status { get; set; }
public bool IsChecked { get; set; }
public string CreatedBy { get; set; }
public Nullable<System.DateTime> CreatedDate { get; set; }
public string UpdatedBy { get; set; }
public Nullable<System.DateTime> UpdatedDate { get; set; }
public string Field_Value_EN { get; set; }
public string Field_Value_AR { get; set; }
}
public partial class AB_Product_vs_Field
{
public string Product_ID { get; set; }
public string Field_ID { get; set; }
public string Field_Value_EN { get; set; }
}
我有数据库表调用AB_Product_vs_Field,我想插入,
ProductFieldID ,Field_ID , Field_Value_EN 来自上一张图片的值
因为这些是 19 个对象必须插入到 AB_Product_vs_Field 数据库表中,我可能不得不使用循环。
所以我创建了以下 linq 查询以将数据插入该表
[HttpPost]
[ValidateInput(false)]
public ActionResult Add_Product(AddNewProduct product)
{
AB_Product_vs_Field insertproductvalue = new AB_Product_vs_Field();
if (ModelState.IsValid)
{
for (int i = 0; i < product.ListProductFields.Count; i++)
{
insertproductvalue.Product_ID = product.Product_ID;
insertproductvalue.Field_ID = product.ListProductFields[i].ProductFieldID;
insertproductvalue.Field_Value_EN = product.ListProductFields[i].Field_Value_EN;
};
db.AB_Product_vs_Field.Add(insertproductvalue);
db.SaveChanges();
}
}
但我收到以下错误
一个或多个实体的验证失败。有关更多详细信息,请参阅“EntityValidationErrors”属性。
我将调试点放在我的代码的db.AB_Product_vs_Field.Add(insertproductvalue); 这一行前面。一旦这行调用它指向App_Browsers.9u0xu-_o.0.cs 文件中的以下部分
public class ApplicationBrowserCapabilitiesFactory : System.Web.Configuration.BrowserCapabilitiesFactory {
public override void ConfigureCustomCapabilities(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
}
这是我在调用此行后得到的错误页面
这些是错误的图像
图片1:
图 2:
【问题讨论】:
-
查看 'EntityValidationErrors' 属性了解更多详情 - 我们看不到 :)
-
@StephenMuecke 问题已更新,在哪里可以看到
EntityValidationErrors,? -
@HenkHolterman 其实我无法通知
EntityValidationErrors,我应该在哪里看? -
@StephenMuecke 我添加了更多图片,但我不明白这里有什么问题
-
@HenkHolterman 我需要为此添加 try catch 吗?
标签: c# asp.net-mvc entity-framework linq list