在Razor视图中使用asp.net mvc4 ActionLink生成语义URL

时间:2012-09-28 07:27:18

标签: asp.net-mvc url asp.net-mvc-4 asp.net-mvc-routing actionlink

我在控制器中为面向公众的网页设置了以下设置

Company -> About -> Partners(我希望以公司/关于/合作伙伴的形式访问) 行动方法

public about(string category)
{
  ViewBag.Category = category;
  return View();
}

链接的生成如下所示,这给了我错误的URL

@Html.ActionLink("Partners & Investors", "About", "Company",new { Category = "Partners" },null)

错误的网址

Company/About?Category=Partners%20and%20Investors

所以问题是如何生成我想要的正确网址。我该怎么办?

1 个答案:

答案 0 :(得分:2)

在您创建新automatically并将其置于正确位置时,系统会生成route个网址。

添加

这样的事情:

routes.MapRoute(
    "Category",
    "Company/About/{category}",
    new { controller = "Company", action = "About", category = "default" }
);

// default
routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

另请看这个链接:Advanced Routing