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:视图返回的查询
  • 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 子句,这样我就可以根据搜索输入显示相关数据。

4

1 回答 1

1

From @LarsHoldgaard's last comment:

Thanks a lot for your help, I got really confused with the project. However, the solution was changing the Search HttpPost to:

    return View("Index", NewUserListModel(input));
于 2013-04-23T14:22:18.963 回答