如何在ASP中的多个表中插入数据。 NET MVC。实体框架

时间:2017-03-27 18:04:35

标签: c# asp.net sql-server asp.net-mvc entity-framework

我有两张桌子tblProduct& tblImagestblImages将为产品提供多个图片,并且具有与tblProduct相关的外键。我在将数据插入多个表时遇到问题。

这是我的观看代码:

<!-- Text Boxes and dropdown lists for tblProduct above and below is for adding files to tblImages-->
<div class="col-md-10">
    <input multiple type="file" id="file" name="file" />
</div>

这是我的控制器代码:

public ActionResult AddProduct_Post([Bind(Include = "productName, productDescription, productPrice, productCategory")]tblProduct tblProduct,List<HttpPostedFileBase> file)
{
    List<tblImage> prodImages = new List<tblImage>();
    var path = "";

    foreach (var item in file)
    {
        if (item != null)
        {
            tblImage img = new tblImage();
            img.ImageFile = new byte[item.ContentLength];
            img.ImageName = string.Format(@"{0}.JPG", Guid.NewGuid());
            img.vend_ID = Convert.ToInt32(Session["userID"]);

            item.InputStream.Read(img.ImageFile, 0, item.ContentLength);

            path = Path.Combine(Server.MapPath("~/Content/img"), img.ImageName);
            item.SaveAs(path);
            prodImages.Add(img);
        }
   }

   tblProduct.venodrID = Convert.ToInt32(Session["userID"]);
   tblProduct.tblImages = prodImages;

   if (ModelState.IsValid)
   {
       db.tblProducts.Add(tblProduct);
       db.SaveChanges();

       int latestProdID = tblProduct.productID;

       foreach (tblImage tblImg in tblProduct.tblImages)
       {
           tblImg.prod_ID = latestProdID;
           db.Entry(tblImg).State = EntityState.Modified;
       }

       db.SaveChanges();

       return RedirectToAction("DashBoard");
   }

   ViewBag.productCategory = new SelectList(db.tblCategories, "categoryID", "categoryName");
   ViewBag.vendorGender = new SelectList(db.tblGenders, "genderId", "genderName");

   return View();
}

我在ModelState.IsValid上设置了一个断点,它不会进入if条件并返回相同的视图而不发布数据。请告诉我如何解决这个问题

P.S:我是ASP.NET MVC的新手

1 个答案:

答案 0 :(得分:0)

  

[Bind(Include =

你可以在action方法中绑定的check参数与你在View中定义的类似,否则你可以删除bind属性并尝试这将帮助你找到实际错误是什么..