0

我想通过链接进行搜索功能。

目前,我在主页上有搜索框。它正在搜索框工作。

但是,我不知道如何将一些参数传递给控制器​​中的 Search 方法。

当我像这样编码时,控制器中的 searchString 为“空”。

如何通过 actionLink 获取 serachString 参数?

你可以帮帮我吗?也许看起来很容易。请帮助我或建议我。谢谢。

//mac.cshtml

<h3>CPU Processor</h3>
<ul>
    <li>@Html.ActionLink("Intel Core i5", "Search", "Store", new { @searchString = "i5"})</li>
    <li>@Html.ActionLink("Intel Core i7", "Search", "Store", new { @searchString = "i7" })</li>
</ul>

//Search method in StoreController
public ActionResult Search(string searchString)
    {

        var product = from a in _db.Product.Include(a => a.Category)
                      select a;
        if (!String.IsNullOrEmpty(searchString))
        {
            product = product.Where(a => a.model.ToUpper().Contains(searchString.ToUpper())
                               || a.Category.name.ToUpper().Contains(searchString.ToUpper()));
        }
        return View(product.ToList());
    }
4

1 回答 1

1

您没有为 Html.ActionLink 使用正确的重载

http://msdn.microsoft.com/en-us/library/system.web.mvc.html.linkextensions.actionlink.aspx

你应该做

@Html.ActionLink("Intel Core i7", "Search", "Store", new { @searchString = "i7" }, null)

它经常与“对象”作为参数混淆。

顺便说一句,这个方法很危险(获取参数),如果你在 linq2entities 中,ToUpper 方法将不起作用

于 2012-04-12T15:55:23.297 回答