Я ищу наилучший способ решить следующую проблему: у меня есть страница поиска с различными критериями, которые можно выбрать, которые доступны в SearchViewModel.Теперь поиск возвращает список SearchResults, которые являются продуктами.Они могут быть добавлены непосредственно в корзину.Теперь проблема в том, что действие по добавлению элемента в корзину выполняется в BasketController, а не в SearchController.Когда пользователь щелкает его, он возвращается в SearchPage, но теряет все выбранные им варианты.
if (Request.UrlReferrer != null)
return Redirect(Request.UrlReferrer.ToString());
Я попытался обойти проблему с помощью TempData, но я получил «Результат запроса».не может быть перечислен более одного раза. "- Исключение.
private SearchViewModel EnsureViewModel(SearchViewModel viewModel)
{
if (TempData["SearchModel"] != null && viewModel.SearchResult == null)
viewModel = TempData["SearchModel"] as SearchViewModel;
TempData["SearchModel"] = viewModel;
return viewModel;
}
Здесь, где я отображаю список моих результатов в модели, выдается исключение:
@Html.DisplayFor(p => Model.SearchResult)
Также считается, что может быть способ сделать это, используя частичное представление?Конечно, мой последний ресурс просто дублирует код, но я не в восторге от этой идеи ...
Любые идеи приветствуются, спасибо =)
Редактировать вызовДля контроллера производится использование формы следующим образом:
@using (Html.BeginForm("Add", "Basket", new { id = Model.Name } ))
{
@Html.TextBox("amount", "1", new { name="amount", maxlength=7, @class = "txtfield number" })
<button><img src="@Url.Content("~/Content/images/icon_basket.gif")" border="0" width="14" height="10" class="basket" /></button>
}