Заполните выпадающий список из базы данных с помощью модели и вставьте выбранное значение этого DDL в базу данных с помощью отдельной модели...?
Привет всем, все вы великолепны..
я новичок в MVC, и проблема, с которой я сталкиваюсь, заключается в следующем.
у меня есть модель продукта и модель категории, и в моей базе данных у меня есть две таблицы: одна-продукт, а другая-категория, которые имеют отношение друг к другу. я создал частичное представление, в котором у меня есть выпадающий список, который заполняется из таблицы категорий с помощью модели категорий. И в дополнение к этому выпадающему списку у меня также есть некоторые другие поля ввода, такие как Product_Name, Product_Image, Product_Price. что я хочу сделать здесь, так это вставить данные модели продукта, а также выбранное значение выпадающего списка в базу данных.
в принципе, я хочу вставить данные о продукте, а также Значение выпадающего списка категорий в базу данных ... пожалуйста, покажите мне какой-нибудь код или поделитесь со мной некоторыми предложениями, чтобы я мог выйти из него. заранее спасибо
Что я уже пробовал:
Моя Модель Продукта
public class Products { public int P_ID { get; set; } public string P_Name { get; set; } public string P_Image { get; set; } public int P_Price { get; set; } public int P_CatedoryID { get; set; } }
Моя Категория Модель
public class Category { public int Cat_ID { get; set; } [Required] public string Cat_Name { get; set; } }
Мой контроллер выглядит следующим образом:
public ActionResult CreateProductsByAjaxCall() { ViewBag.Categories = db.GetALLCategoriesForProducts().Select(x => new SelectListItem { Text = x.Cat_Name, Value = x.Cat_ID.ToString() }); return PartialView(); } [HttpPost] [ValidateAntiForgeryToken] public ActionResult CreateProductsByAjaxCall(Products product) { if (ModelState.IsValid) { db.CreateProducts(product); } return RedirectToAction("Index"); }
Моя Частичная Точка Зрения Такова
@model WebApplication.Models.Products <div class="container alert-success"> <h4>Create Products</h4> @using (Html.BeginForm()) { @Html.AntiForgeryToken() <div class="form-horizontal"> @Html.ValidationSummary(true, "", new { @class="text-danger"}) <div class="form-group"> @Html.LabelFor(model => model.P_Name, "Product Name:", htmlAttributes: new { @class="control-label col-md-2"}) <div class="col-lg-8"> @Html.EditorFor(model => model.P_Name, new { htmlattributes = new { @class="form-control"} }) @Html.ValidationMessageFor(model => model.P_Name, "", new { @class="text-danger"}) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.P_Image, "Upload Image:", htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-lg-8"> @Html.EditorFor(model => model.P_Image, new { htmlattributes = new { @class = "form-control" ,type="file"} }) @Html.ValidationMessageFor(model => model.P_Image, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.P_Price, "Product Unit Price:", htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-lg-8"> @Html.EditorFor(model => model.P_Price, new { htmlattributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.P_Price, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.P_CatedoryID, "Product Category:", htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-lg-8"> @Html.DropDownList("Categories", (SelectList)ViewBag.RequiredKey, new { @class = "form-control" }) </div> </div> <div class="form-group"> <div class="col-md-offset-2 col-md-2"> <input type="submit" value=" Create" class="btn btn-success" /> </div> </div> </div> } </div>
Sunasara Imdadhusen
Так в чем же была проблема? я вижу "@Html. LabelFor(model = & gt; model.P_CatedoryID, в частичном представлении. это означает, что он отправит полную модель продукта с идентификатором категории.
Muhammd Aamir
@Sunasara Imdadhusen, сэр его не интересуют этикетки я хочу, чтобы вставить данные из dropdownlist Для в базе и не нашел ни одного кода, который является надежным в решении моей проблемы...
Sunasara Imdadhusen
Можете ли вы получить все данные внутри этого метода CreateProductsByAjaxCall(Products product) при нажатии на кнопку Submit?
Muhammd Aamir
Сэр, когда я отлаживаю свой код, он будет отображать все значения, которые есть у продукта, но значение P_CategoryID равно " 0 " нулю, что является главной проблемой, как я могу получить точное значение выбранного выпадающего списка..