Я вставляю Product, Image и Product Detail, все хорошо, но когда я вставляю изображение, я получаю ошибку. ImagePath не вставляется, когда я использую дополнительное изображение таблицы, тогда возникает эта ошибка, если я использую столбец imgpath в Product, тогда он работает, я использую дополнительную таблицу, потому что я хочу вставить несколько изображений, поэтому я использую дополнительную таблицу.
Ошибка:
Требуется imgPath
Когда я использую точку останова, я могу увидеть изображение, тогда курсор достигнет функции сохранения. значения в объекте изображения.
Может ли какой-нибудь эксперт сказать мне, где я не прав? Если у вас есть простое решение, пожалуйста, направьте меня.
Изображение:
public partial class Image
{
public int imgID { get; set; }
public string ImgName { get; set; }
public bigint prodid{ get; set; }
}
Модель продукта:
public partial class Product
{
public long ProductID { get; set; }
public string PName { get; set; }
public string PDescription { get; set; }
}
Основные сведения о продукте:
public partial class MasterDetail
{
public int mDID { get; set; }
public long ProductID { get; set; }
public string OS { get; set; }
public string SimType { get; set; }
public string Other { get; set; }
}
Интерфейс продукта:
public interface IProduct
{
void Add_NewProduct(Product prod, Specification spec, Image pic);
}
Реализация продукта:
public void Add_NewProduct(Product prod, Specification spec, Image pic)
{
try
{
_db.Products.Add(prod);
_db.Specifications.Add(spec);
_db.Images.Add(pic);
_db.SaveChanges();
}
catch (Exception)
{
throw;
}
}
Контроллер продукта:
[HttpPost]
public ActionResult AddNewProducts(ProductViewModel prod, List<HttpPostedFileBase> file)
{
try
{
List<ProductType> PTlist = _IproductType.PTList();
ViewBag.Ptlist = new SelectList(PTlist, "PType_ID", "P_Name");
// Product Color List
List<P_Color> pColorList = _IProductColor.PColorlist();
ViewBag.pColor_List = new SelectList(pColorList, "C_ID", "C_Name_OR_Code");
List<P_Size> pSizeList = _ISize.pSizeList();
ViewBag.pSizeLists = new SelectList(pSizeList, "S_ID", "S_Size");
string PathDB = string.Empty;
foreach (HttpPostedFileBase files in file)
{
string filename = Path.GetFileName(files.FileName);
string _filename = DateTime.Now.ToString("yymmssff") + filename;
string extension = Path.GetExtension(files.FileName);
string path = Path.Combine(Server.MapPath("~/Upload/"), _filename);
PathDB = "~/Upload/" + _filename;
if (extension.ToLower() == ".jpeg" || extension.ToLower() == ".jpg" || extension.ToLower() == ".png")
{
if (files.ContentLength <= 1000000)
{
img = new Image();
prod.ImgID = img.imgID;
prod.ImgPath = PathDB;
prod.ProductID = img.ProdID;
}
else
ViewBag.sizemsg = "Size Limit accessed ";
}
else
ViewBag.fileformat = "File is not Format is not Correct";
}
Product pro = new Product();
pro.ProductID = prod.ProductID;
pro.PName = prod.PName;
pro.PDescription = prod.PDescription;
Specification p_spec = new Specification();
p_spec.PSpecificationID = prod.PSpecificationID;
p_spec.ProductID = prod.ProductID;
p_spec.OS = prod.OS;
p_spec.DualSim = prod.DualSim;
p_spec.TouchScreen = prod.TouchScreen;
p_spec.Other = prod.Other;
_IProducts.Add_NewProduct(pro, p_spec, img);
ViewBag.message = "Record Saved Successfully";
ModelState.Clear();
}
catch (Exception ex)
{
throw ex;
}
return RedirectToAction("ProductsList");
}
Вид продукта:
@using (Html.BeginForm("AddNewProducts", "Items", FormMethod.Post, new { enctype = "multipart/form-data", @class = "form-horizontal" }))
{ <div id="tabimage" class="tab-pane">
<h3 class="mgtp-15 mgbt-xs-20"> Images</h3>
<div class="vd_panel-menu">
<div> <a class="btn vd_btn vd_bg-blue btn-sm save-btn"><i class="fa fa-save append-icon"></i> Save Changes</a> <a class="btn btn-default btn-sm" data-toggle="modal" data-target="#myModal"><i class="fa fa-times append-icon"></i> Cancel Changes</a></div>
</div>
<div class="form-group">
<label class="control-label col-lg-3 file_upload_label"> <span title="" data-toggle="tooltip" class="label-tooltip" data-original-title="Format JPG, GIF, PNG. Filesize 8.00 MB max."> Add a new image to this product </span> </label>
<div class="col-lg-9">
<span class="btn vd_btn vd_bg-green fileinput-button">
<i class="glyphicon glyphicon-plus"></i> <span>Add files...</span>
<!-- The file input field used as target for the file upload widget -->
<input type="file" name="file" required="required" multiple id="file" />
</span>
</div>
</div>
</div> }