我正在寻找解决以下问题的最佳方法:我有一个搜索页面,可以选择不同的标准,这些标准在 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>
}