ASP.NET MVC路由:清理URL - 从驼峰案例到连字符

时间:2013-09-03 05:11:44

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

我目前在我的控制器中定义了一个动作:

    // GET: /schools/:cleanUrlName/data-loggers
    public ActionResult DataLoggers(string cleanUrlName)
    {
        return View();
    }

当我点击“/ schools / brisbane-state-high-school / dataloggers”时,这是有效的 - 但根据评论 - 我想通过稍微更清晰的网址(使用连字符)访问它:“/ schools / brisbane -state-高中/数据记录器”。我知道我可以写一条路来完成这个,但我希望我不必为每个多措辞的动作/控制器写一条新的路线。有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以使用ActionNameAttribute为您的操作名称创建别名。

所以你只需要注释你的多措辞行动:

[ActionName("data-loggers")]
public ActionResult DataLoggers(string cleanUrlName)
{
    return View("DataLoggers");
}

但是因为这也会影响视图发现,因此您需要返回View("DataLoggers"),这样您就可以更好地为多措辞操作创建自定义路由。

相关问题