我将数据集设置为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:
答案 0 :(得分:1)
我在for循环中添加了以下行,然后它可以保留每个元组的记录
@Html.HiddenFor(m => m.ListProductFields[i].ProductFieldID)
然后我的视图页面就像这样
<div class="col-md-10">
@Html.HiddenFor(m => m.ListProductFields[i].ProductFieldID)
@Html.TextAreaFor(m => m.ListProductFields[i].Field_Value_EN,
new { @class = "form-control summernote", @row = 5 })
</div>