我正在运行一个 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:视图返回的查询
- QueriedUsers :用户排序后的用户
在我看来,我有以下代码:
@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 子句,这样我就可以根据搜索输入显示相关数据。