我想通过链接创建搜索功能。
目前,我在主页上有搜索框。它正在搜索框中。
但是,我不知道如何将一些参数传递给控制器中的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());
}
答案 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方法将不起作用