我正在尋找解決以下問題的最佳方法:我有一個搜索頁面,可以選擇不同的標準,可在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