Запутался в том, как использовать форму для управления несколькими сообщениями asp.net mvc - PullRequest
0 голосов
/ 03 марта 2019

Я создаю страницу для управления списком пожеланий в магазине.Список желаний содержит элементы с кнопками на них.Кнопки либо добавят элемент в корзину клиента, затем удалят его (первое действие) из списка желаний, либо просто полностью удаляют из списка желаний (второе действие).В настоящее время он делает это с использованием двух частичных представлений.

Это частичный код первого действия;

@using (Html.BeginUmbracoForm<SamplesController>("AddSampleFromWishlist"))
{
    @Html.HiddenFor(x => x.ProductId)
    @Html.HiddenFor(x => x.Quantity)
    @Html.HiddenFor(x => x.Name)
    @Html.HiddenFor(x => x.ThumbnailUrl)
    @Model.ProductId
    <input type="submit" value="Add Sample To Cart" class="wishlist-items-add-to-cart" />
    if (TempData[successToken] != null && (bool)TempData[successToken] == true)
    {
        <p>Order has been successfully added.</p>
    }
}

И второго;

@using (Html.BeginUmbracoForm<WishlistController>("RemoveFromWishlist"))
{
  @Html.HiddenFor(x => x.ItemId)
  <input type="submit" value="Remove" class="wishlist-items-remove" />
  if (TempData["RemovedFromWishlist"] != null && (bool)TempData["RemovedFromWishlist"] == true)
  {
    <p>Item has been successfully removed from the Wishlist</p>
  }
}

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

  • Добавление элемента в корзину, который отправляет сообщения в SamplesController.
  • Это добавляет в корзину в контроллере, а затем возвращает текущую страницу
  • Страница загружает оставшиеся элементы в списке желаний, но все они теперь имеют одинаковый продукт

Таким образом, страница отправляет сообщение контроллеру, контроллер возвращает предыдущую страницу какожидается, но теперь список элементов списка желаний в их элементах формы имеет одинаковые идентификаторы.Погуглив это, есть указание, что это может быть умышленно, или мне нужно быть более точным в отношении того, что возвращается на страницу при запуске POST.

В любом случае я запутался - это даже правильный подход?Странно иметь несколько элементов формы для каждого элемента списка желаний, с которым можно отправить POST.Будет ли лучший способ решить эту проблему?

Буду признателен за любой совет.Благодарю.

...