1

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

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

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

4

1 回答 1

4

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

所以你只需要注释你的多字动作:

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

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

于 2013-09-03T05:24:40.273 回答