bev*_*qua 7 seo asp.net-mvc-routing asp.net-mvc-3
我很好〜/映射到Home Index,并且〜/ Blog映射到Blog Index,但是如何防止〜/ Home映射到Home Index呢?我不希望从多个端点访问路由.
同样,如何防止〜/ Controller和〜/ Controller/Index中的所有其他"索引"操作都可以访问?
OK〜/
NO~/Home
NO~/Home/Index
OK~/AnyOtherController
NO~/AnyOtherController/Index
我想该规则应该类似于阻止任何默认操作可以显式访问,并且在home的情况下也可以防止仅使用控制器访问它.
可以这样做吗?这是在过去完成的吗?例如,SO不会这样做(你可以在这里或那里访问)并且都渲染主页; 并且它们可能具有与"index"不同的默认操作名称,这可能也是可访问的路径.
像这样实现它是为了将这些路由视为 404 错误,但仍在我的 MVC 应用程序中(以便发生自定义错误视图):
/// <summary>
/// By not using .IgnoreRoute I avoid IIS taking over my custom error handling engine.
/// </summary>
internal static void RegisterRouteIgnores(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"IgnoreHome",
"Home",
new { controller = "Error", action = "NotFound" }
);
routes.MapRoute(
"IgnoreIndex",
"{controllerName}/Index/{*pathInfo}",
new { controller = "Error", action = "NotFound" }
);
Run Code Online (Sandbox Code Playgroud)
这确实允许通过使用访问 Home/Index 操作/home/{id},但我愿意接受这一点。
| 归档时间: |
|
| 查看次数: |
1668 次 |
| 最近记录: |