0

我正在使用 MVC 3。众所周知,MVC 根据控制器中的操作方法名称设置 URL,但我需要稍作修改。

出于安全目的,我不想在 URL 中显示我的操作方法的名称。因此,如果我在 Home 控制器中有 index 方法,则 URL 将是这样的:www.server/home/index但我想www.server/home/test在浏览器中显示。我可以通过使用[ActionName]属性来做到这一点,但是还有其他方法吗?

我可以为此使用自定义路由处理程序吗?

4

1 回答 1

0

作为使用ActionName的替代方法,您可以定义自定义路由并将其定向到您想要的任何 Controller 和 Action。例如:

routes.MapRoute("home/test", "home/test/{id}",
  new { controller = "Home", action = "Index", id = UrlParameter.Optional });

将采用类似/home/testand/home/test/42的路径并将它们路由到 Home 控制器的 Index 操作。

{id}如果不需要,您也可以省略该部分。例如:

routes.MapRoute("home/test", "home/test",
  new { controller = "Home", action = "Index" });

只会拿/home/test

这也是我在保持大写控制器和操作名称的同时实现小写 URL 的方式。我只是硬编码我所有的路线。

于 2012-08-09T07:45:46.173 回答