2013-04-23 77 views
2

我運行一個MVC應用程序,它有這樣的視圖模型:更新內容依賴於字符串中的視圖模型

public class UserListViewModel 
{ 
    public UserListViewModel() 
    { 
     Users = new List<UserViewModel>(); 
     QueriedUsers = new List<UserViewModel>(); 
    } 

    public List<UserViewModel> Users { get; private set; } 
    public string SearchQuery { get; set; } 
    public List<UserViewModel> QueriedUsers { get; private set; } 
} 
  • 用戶:原來用戶
  • SEARCHQUERY:一查詢返回的視圖
  • 查詢用戶:用戶排序後的用戶

在我看來,我有以下代碼:

@using (Html.BeginForm("Search", "EditUser")) 
{ 
    @Html.EditorFor(model => Model.SearchQuery); 
} 



@if (Model.QueriedUsers != null && Model.QueriedUsers.Any()) 
{ 
    foreach (var u in Model.QueriedUsers) 
    { 
     // do stuff 
    } 
} 
else 
{ 
    foreach (var u in Model.Users) 
    { 
     // do stuff 
    } 
} 

而且這是在控制器中的HttpPost代碼:

[HttpPost] 
public ActionResult Search(UserListViewModel input) 
{ 
    return View("EditUser",NewUserListModel(input)); 
} 

之前我在搜索欄中點擊進入,我有一個URL是這樣的:

http://localhost:61162/Admin/Users 

點擊進入後,我得到:

http://localhost:61162/Admin/Users/Search 

從我的斷點我可以告訴控制器代碼運行。

我在新的URL得到的錯誤是:

的資源不能被發現。 描述:HTTP 404.您正在查找的資源(或其某個依賴項)可能已被刪除,名稱已更改,或者 暫時不可用。請檢查以下URL並確定 拼寫正確。

Requested URL: /Admin/EditUser/Search 

這當然是由URL引起的改變。

任何提示如何解決我的問題? :-)我只想在我的用戶上有一個where子句,所以我可以根據搜索輸入顯示相關數據。

+0

的錯誤信息是非常明顯的,你沒有一個視圖中命名的用戶。 – 2013-04-23 11:24:44

+0

對不起,錯誤的錯誤信息。更新後:)謝謝, – 2013-04-23 11:33:06

+0

你有'EdirUser'方法嗎? – 2013-04-23 11:39:36

回答

1

從@ LarsHoldgaard的最後的評論:

非常感謝你的幫助,我得到了這個項目真的很困惑。 然而,溶液變爲搜索HttpPost:

return View("Index", NewUserListModel(input));