значения элементов foreach для разных чернил - PullRequest
0 голосов
/ 28 ноября 2018

Привет, я работаю над простым приложением MVC для онлайн-шоппинга.У меня есть таблица, которая содержит 3 категории: ноутбуки, мобильные телефоны, приставки.У меня есть частичное представление, которое возвращает мне эти категории (из таблицы категорий) в список, и я помещаю каждое значение в кнопку.

Частичное представление: _Categories

@model OnlineShopping.MyViewModel

<div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
    <div class="btn-group mr-2" role="group" aria-label="First group">

        @foreach (Category item in Model.CategoriesV)
        {
            <button type="button" class="btn btn-secondary"> 
                @item.CategoriesName 
            </button>
        }
    </div>
</div>

Iя вызываю частичное представление в индексе, как это

Index.cshtml

<div class="catmenu" style="display: none;">
    @Html.Partial("_Categories", Model)
</div><br />

У меня есть другая таблица под названием Продукты, которая содержит название продуктов каждой категории и идентификатор категории.таблица категорий.

Пример:

Таблица категорий содержит:

categoryId = 1

CategoriesName= Мобильные телефоны

Таблица продуктов содержит:

ProductID = 1

ProductName = Apple

Category_ID =1

То, что я хочу сделать, это когда я получаю 3 категории из представления категорий (ноутбуки, мобильные телефоны, консоли), я хочу, чтобы, если я нажму на кнопку ноутбука, это приведет меня к частичной части ноутбукапросмотреть и он покажет все продукты, которые имеют одинаковые категории (например, если я нажал наЕдинственное, я получу Xbox и PS, потому что у них есть идентификатор категории Smaecategory в качестве ConsoleID), частичное представление с мобильного на мобильное устройство и та же самая кнопка для консолей.

Надеюсь, я достаточно ясно .. Спасибо.

1 Ответ

0 голосов
/ 28 ноября 2018

сделать одну вещь, связать некоторый уникальный идентификатор с кнопкой в ​​первом цикле, я предпочитаю столбец Id, поэтому это будет выглядеть так: -

@model OnlineShopping.MyViewModel

<div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
    <div class="btn-group mr-2" role="group" aria-label="First group">

        @foreach (Category item in Model.CategoriesV)
        {
            <button type="button" class="btn btn-secondary catclick" id="item.Category_Id"> 
                @item.CategoriesName 
            </button>
        }
    </div>
</div>

в контроллере я создам методкоторый вернет все элементы, основанные на категории

public ActionResult GetCatItems(int id){
  // method to return data here
  return View("_mypartialview",partialdata)

}

, он вернет простой HTML с заполненными данными для вашего просмотра, теперь вам просто нужно вставить возвращенный HTML в нужное место

$.ajax({
// ajax get data method
success(data){
  //on success clear the parent container of your partial view
   $('.catmenu').html('');


 //this will load your html into view
  $('.catmenu').html(data);
}

})

, поскольку в контроллере мы вернули представление и перехватили его с помощью вызова ajax, вы получите html этого частичного представления с заполненными данными

return View("_partial",data);

в случае успеха ajax получит ваше частичное представлениеотображается в контейнере

//on success clear the parent container of your partial view
   $('.catmenu').html('');


 //this will load your html into view
  $('.catmenu').html(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...