我正在寻找解决以下问题的最佳方法:我有一个搜索页面,可以选择不同的标准,可在SearchViewModel中使用。现在搜索返回一个SearchResults列表,它是产品。那些可以直接加入篮子。 现在的问题是,将项目添加到购物篮的操作是在BasketController上,而不是SearchController。当用户点击它时,他会返回到SearchPage,但会失去他所做的所有选择。MVC 3在不同的控制器上执行操作,但需要ViewModel
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)
我也认为可能有办法做到这一点使用的局部视图? 当然,我最后的ressource只是重复的代码,但我没有这个想法激动不已......
任何想法表示赞赏,感谢=)
编辑 的呼吁控制器使用如下形式:
@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>
}
不确定你的问题到底是什么......你为什么不能直接在你的视图上设置表单来将所有选中的产品直接发布到'BasketController'? – rsenna 2011-05-02 13:06:14
它有一个“添加到购物篮”-Button,它通过购物篮控制器将产品添加到购物篮中,但用户必须在搜索页上使用搜索查看模型。我希望这可以让它更清晰一些...... – Nischo 2011-05-02 13:13:27