- Поместить все категории из таблицы «Категории» в файл «Продукт»/Создать файл как флажки (что поместит входные данные в таблицу «Продукты»)
- Извлечь выбранные флажки
- для каждого выбранного флажка, добавить продукт в собственный список в таблице категорий
Надеюсь, это имеет смысл. Вот мой код. Я не хочу создавать еще один файл/модель/представление/контроллер, если это возможно. Я перевел все на английский, чтобы было легче читать.
Модель категории:
Код: Выделить всё
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebshopMVC.Models
{
public class Category
{
public int ID { get; set; }
public string Image { get; set; }
public string Name { get; set; }
public string Description{ get; set; }
public virtual ICollection
Producten { get; set; }
}
}
Код: Выделить всё
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebshopMVC.Models
{
public class Product
{
public int ID { get; set; }
public string Image { get; set; }
public string Name{ get; set; }
public string Description{ get; set; }
public decimal Price{ get; set; }
public virtual ICollection Categories{ get; set; }
public virtual ICollection Offers{ get; set; }
}
}
Код: Выделить всё
@model WebshopMVC.Models.Categorie
@{
ViewBag.Title = "Create";
}
Create
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
[h4]Categorie[/h4]
@Html.ValidationSummary(true)
@Html.LabelFor(model => model.Image, new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.Image)
@Html.ValidationMessageFor(model => model.Image)
@Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
@Html.LabelFor(model => model.Description, new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.Description)
@Html.ValidationMessageFor(model => model.Description)
}
@Html.ActionLink("Back to List", "Index")
Код: Выделить всё
public ActionResult Create()
{
return View();
}
// POST: /Product/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ID,Image,Name,Description,Price,Categories")] Product product)
{
if (ModelState.IsValid)
{
db.Producten.Add(product);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(product);
}

Это просто изображение на голландском языке, поэтому я дам вам английский перевод:
Код: Выделить всё
Categorie => Category
plaatje => Image
naam => Name
omschrijving => Description
Product => Product
plaatje => Image
naam => Name
omschrijving => Description
Prijs => Price
- Позвольте пользователю создать продукт и назначить 1 или несколько категорий, которые будут получены из таблицы «Категории».
- Получите выбранные категории, добавьте их в список «Категории» в модели продукта.
- Добавьте продукт в список «Продукты» в модели «Категории».
- Позже мне нужно будет иметь возможность циклически просматривать категории и получать их продукты, чтобы иметь возможность ссылаться на них.
Я добавил модель представления в свой проект.
Код: Выделить всё
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebshopMVC.Models
{
public class ProductCategoryViewModel
{
public string Image{ get; set; }
public string Name { get; set; }
public string Description{ get; set; }
public decimal Price { get; set; }
public IEnumerable Categories { get; set; }
public ProductCategoryViewModel()
{
Categories = Categories.ToList();
}
}
}
Код: Выделить всё
@Html.LabelFor(model => Model.Categories)
@foreach (var item in Model.Categories)
{
@(item.Name)
}
Ссылка на объект не установлена на экземпляр объекта. (Строка 54)
Код: Выделить всё
Line 52: @Html.LabelFor(model => Model.categories)
Line 53:
Line 54: @foreach (var item in Model.categories)
Line 55: {
Line 56: @(item.Name)
Как эта ProductCategoryViewModel извлекает информацию из базы данных/таблицы категорий. Я нигде не вижу ссылки.
Я добавлю свою диаграмму классов, возможно, это поможет:
![Диаграмма базы данных] (
) Подробнее здесь: https://stackoverflow.com/questions/285 ... ection-mvc
Мобильная версия