我正在试图弄清楚如何有条件地设置一个可选的routeValue。
我有
<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex) }) %>
如果访问者点击“类别”,我只会显示该类别的产品,但如果没有“类别”,则会显示所有产品。
这两个网址有效:
/ Products / Page
/产品/页?类别=汽车
RouteLink在我的寻呼机中,所以我想我可以以某种方式传递寻呼机链接中的类别参数,以便在页面之间保持类别。但是我不确定如何处理没有选择类别的情况与选择类别的情况。
我知道我可以这样做:
<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex), category=cars }) %>
但是可以在不创建一些尴尬的if语句的情况下处理这两种情况吗?
答案 0 :(得分:3)
这只是一个想法,但你不能只传递一个空的类别参数吗?
<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex), category=(ViewData["CategoryName"]) }) %>
在您获得该页面的productcontroller中,只需检查它是否存在?
public ActionResult Index(int page, string category)
{
ViewData["CategoryName"] = category;
if(!string.IsNullOrEmpty(category)){
//paging with category
}else{
//paging without category
}
return View("Create");
}
或者你的意思是“尴尬的陈述”?
答案 1 :(得分:2)
如果 cars 变量为null或空字符串,则Html.RouteLink方法不会自动将 category 参数添加到URL。您无需进行额外检查。