2

我试图弄清楚如何有条件地设置一个可选的 routeValue。

我有

<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex) }) %>

如果访问者点击“类别”,我只显示该类别的产品,但如果没有“类别”,我会显示所有产品。

这 2 个 URL 将是有效的:

/产品/页面

/Products/Page?category=汽车

RouteLink 在我的寻呼机中,所以我想我可以通过某种方式在寻呼机的链接中传递类别参数,以便在页面之间保持类别。但是,我不确定如何处理未选择类别与选择类别的情况。

我知道我可以这样做:

<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex), category=cars }) %>

但是是否有可能在不创建一些尴尬的 if 语句的情况下处理这两种情况?

4

2 回答 2

3

这只是一个想法,但你不能只传递一个空的类别参数吗?

<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex), category=(ViewData["CategoryName"]) }) %>

在获得页面的产品控制器中,只需检查它是否存在?

public ActionResult Index(int page, string category)
{
    ViewData["CategoryName"] = category;

    if(!string.IsNullOrEmpty(category)){
        //paging with category
    }else{
        //paging without category
    }
    return View("Create");
}

或者这就是“尴尬的 if 语句”的意思?

于 2009-05-20T12:08:06.277 回答
2

如果汽车变量为 null 或空字符串,Html.RouteLink 方法不会自动将类别参数添加到 URL。你不需要做额外的检查。

于 2009-05-20T12:26:15.553 回答