使用MVC中的动作链接传递参数

时间:2013-09-29 10:12:17

标签: c# asp.net-mvc

我有两个视图类别和产品我通过传递类别ID检索产品,我想在我的产品视图中实现搜索功能。当我尝试传递类别ID和搜索字符串
时 在我的控制器方法搜索表单提交不工作,如果我单独传递搜索字符串然后它的工作。如何在控制器方法中传递两个参数。或者我应该使用部分视图

分类视图:

@foreach (var item in Model) 
{
    <li>
        @Html.ActionLink(
            @item.Category, 
            "Products", "
            Home", 
            new { cid = @item.CategoryId, search = UrlParameter.Optional}, 
            null)
    </li>
}

产品视图:

@using(Html.BeginForm("Products", "Home", FormMethod.Get))
{
    <b>Search:</b> @Html.TextBox("search")<input type="submit" value="search" />
}

控制器方法:

public ActionResult Products( string search,int cid) 
{
    if (!string.IsNullOrEmpty(search))
    {
        var ser = db.searchPro(search);
        return View(ser);
    }
    else
    {
        var Pro = db.getProducts(cid);
        return View(Pro);
    }
}

1 个答案:

答案 0 :(得分:1)

您应该将参数类型更改为Nullable,因为当您从产品搜索视图提交时,没有'cid'

public ActionResult Products( string search,int? cid)