在维护URL的同时组织(拆分?)控制器

时间:2016-04-18 16:01:05

标签: asp.net-mvc

我们有一个大型Web应用程序,它是WebForms和MVC的混合体。我们使用的URL看起来像www.something.com/Secure/Module/SomeAction。当我们以前使用Webforms模块时是一个文件夹,因为我们在该文件夹下需要多个ASPX。使用MVC,我们采用了类似的方法,其中Module转换为包含所有操作的控制器。我们遇到的问题是,如果模块有类似20到30个动作,它会变得非常混乱。例如,如果我们有一个PersonReport,那通常会转换为专门用于单独提供该报告的几个操作(以便于ajax调用等)。我们的行为相当薄,他们填充模型(通常称为WCF服务)以及它的相关内容。然而,它可以很容易地爬上1500行代码,我们开始利用区域来组织控制器的各个部分。创建一个新控制器(默认情况下)显然会偏离我们的URL模式。关于如何更好地组织这个混乱的任何建议?

1 个答案:

答案 0 :(得分:0)

如果您打算使用MVC 5,则可以使用属性路由。这将允许您为每个具有属性

的Action方法指定自定义路由

以前的版本允许您通过RouteConfig.cs文件覆盖默认路由。例子是

routes.MapRoute(
    name: “ProductPage”,
    url: “{productId}/{productTitle}”,
    defaults: new { controller = “Products”, action = “Show” },
    constraints: new { productId = “\\d+” }
);

有关详细信息,请参阅此link。 希望这会有所帮助。