4
我有一個視圖,其中包含3個部分視圖 2個部分位於屏幕左側和右側的頂部。 每一個具有相互排斥的搜索,並且每個回發到自己的行動將部分視圖返回到相同視圖
這是呈現的初始視圖
public ActionResult Index() {
var model = new SearchOptionsViewModel();
return View(model);
}
這是局部視圖中的一個後動作的動作:
[HttpPost]
public ActionResult SearchByUser(UserSearchOptionsViewModel model) {
if(ModelState.IsValid) {
var list = SearchUserService.SearchByValue(model.LastName, model.Username, model.EmailAddress);
if(list != null) {
var resultsModel = new UserSearchResultsListViewModel();
list.ForEach(item => resultsModel.Users.Add(new UserSearchResultsViewModel(item)));
return RedirectToAction("SearchResults", resultsModel);
}
}
return View(model);
}
該模型成功發佈並從數據庫獲取我的數據並將其添加到視圖模型。 我迷失了關於如何讓結果顯示在搜索條件下的同一屏幕上。
這是我希望能夠從先前操作中接收模型並將部分渲染回原始視圖的操作。我認爲使用第三個SearchResults partialview是答案,但這不起作用,它導航到它自己的頁面顯示結果,而不是在同一頁面上。
public ActionResult SearchResults(UserSearchResultsListViewModel model) {
return PartialView(model);
}
當我這樣做時,模型始終爲空。我在這裏錯過了一些基本的東西...... 如何獲取這些數據以顯示在同一個視圖上?
看起來好像這是爲處理,只有這樣的共識,因爲該行爲不能傳遞對象,只有原語。所以標記它回答。 – 2012-02-01 18:50:40
但是如果ModelState.IsValid在你的第二個方法中是假的呢? – 2012-05-14 08:16:00
ModelState在帖子的第一個方法中被評估,這對我來說很重要,如果我將數據保存到db這是另一個故事,但是這只是從數據庫獲取數據並分配給模型的屬性併發送回來了 – 2012-05-14 12:12:44