带搜索功能的MVC3 ActionLink

时间:2012-04-12 15:45:38

标签: asp.net-mvc-3 actionlink

我想通过链接创建搜索功能。

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

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

当我像这样编码时,searchString在控制器中是'null'。

如何通过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());
    }

1 个答案:

答案 0 :(得分: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方法将不起作用