0

我是新来的,我对 MVC 4 中的一段搜索代码有疑问。我有这段代码:

public ActionResult Index(string searchTerm = null)
{
    var model = entities.Users
                        .Where( m => searchTerm == null || m.SureName.Contains(searchTerm))
                        .Select(m => new UserViewModel
                            {
                                Name = m.Name,
                                SureName = m.SureName,
                                Department = m.Department,
                                Mail = m.Mail
                            });
}

索引.cshtml

<form method="get">
    <input type="search" name="searchTerm " />
    <input type="submit" value="Search ..." />
</form>

@foreach (var item in Model)
{
    <div>
        <h4>@item.Name, @item.SureName</h4>
        <div>@item.Department, @item.Mail</div>
    </div> 
}

当我运行它时,它一直在工作,直到我想搜索任何东西。问题在于路由。因为如果我手动输入 ":XXXX/?searchTerm=Luk" 一切正常。但是当我在页面上执行相同操作时,URL 看起来像这样“:XXXX/?searchTerm+=Luk”。有谁知道,为什么有那个 + 标记?我认为这就是我在这里遇到的问题。

4

1 回答 1

2

你在这里有一个空格:

<input type="search" name="searchTerm " />

这将在您的查询字符串中被 HTML 编码为“+”。从“名称”属性中删除空格,你应该没问题。

于 2013-06-21T07:02:47.657 回答