Как добавить данные в оба: ИД категории и Имя категории из одного Html.LabelFor? - PullRequest
0 голосов
/ 01 марта 2012

В представлении Создать я хочу добавить новый продукт.Мне нужно из выпадающего списка выбрать название категории.Проблема в том, что у меня в таблице «Продукты» добавлен только идентификатор категории.А как мне добавить и название тоже категории?

Структура моей БД:

Таблица Брэнд: idbrand, name.

Таблица Make: idbrand, namebrand, idmake, name,цена, urlmake.

Я делаю следующее:

    // GET: /ShopManager/Create

    public ActionResult Create()
    {
        ViewBag.BrandID = new SelectList(db.Brand, "BrandID", "Name");
        return View();
    } 

    //
    // POST: /ShopManager/Create

    [HttpPost]
    public ActionResult Create(Make make)
    {
        if (ModelState.IsValid)
        {
            db.Make.AddObject(make);
            db.SaveChanges();
            return RedirectToAction("Index");  
        }

        ViewBag.BrandID = new SelectList(db.Brand, "BrandID", "Name", make.BrandID);
        return View(make);
    }



  @using (Html.BeginForm()) {
   @Html.ValidationSummary(true)
   <fieldset>
    <legend>Марка телефона</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.BrandID, "Бренд")
    </div>
    <div class="editor-field">
        @Html.DropDownList("BrandID", String.Empty)
        @Html.ValidationMessageFor(model => model.BrandID)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.Name, "Марка телефона")
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Name)
        @Html.ValidationMessageFor(model => model.Name)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.Price, "Цена")
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Price)
        @Html.ValidationMessageFor(model => model.Price)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.UrlMake, "Изображение")
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.UrlMake)
        @Html.ValidationMessageFor(model => model.UrlMake)
    </div>

    <p>
        <input type="submit" value="Создать" />
    </p>
  </fieldset>


  <div>
  @Html.ActionLink("Back to List", "Index")
  </div>

Как мне добавить в таблицу Сделать BrandID и название бренда (название категории)?

1 Ответ

1 голос
/ 01 марта 2012

Так как у вас есть таблица Брэндов, нет необходимости хранить название брэнда также в Марке, вы можете получить это с помощью простого объединения. В любом случае, если вы действительно хотите сделать это в Create, вы можете установить его как следующий код

make.NameBrand = db.Brand.Where(b => b.idbrand == make.idbrand).SingleOrDefault().namebrand;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...