MVC区域与控制器同名

时间:2017-07-21 00:46:44

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

尝试设置MVC路由(我使用MVC5),这将允许我执行以下操作:

  • 事情/索引
  • 事情/创建
  • 事/报表/索引
  • 事/报告/ SomeReport

因此,在默认的'区域' (即没有区域),我添加了一个' Thing'控制器。 在我的“事情”中控制器我有'索引'和'创建'行动。

然后我添加了一个' Thing'区域。我添加了一份报告'控制器到这个区域,在这个控制器中我已经添加了索引'和' SomeReport'动作。

在我的全球范围内 - 我打电话:

AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);

路线定义如下;

context.MapRoute(
    "Thing_default",
    "Thing/{controller}/{action}/{id}",
    new { action = "Index", id = UrlParameter.Optional },
    namespaces: new[] { "MyApplication.Areas.Thing.Controllers" }
);

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    namespaces: new string[] { "MyApplication.Controllers" }
);

使用此配置,我得到以下结果;

  • 东西/ - 好的
  • 事/索引 - 404
  • 事物/创造 - 404
  • 事情/报告 - 确定
  • 事/报告/索引 - 确定
  • Thing / Reports / SomeReport - 确定

我在属性路由方面尝试了同样的事情 - 但是再次没有成功。

任何人都可以详细说明如何实现这一目标吗? 任何帮助将不胜感激!

0 个答案:

没有答案