1

我将在我的 asp.net4.0 应用程序中实现路由功能,并遵循给定的链接:

URL-路由

如果应用程序的编号有限,这很好。页面,但我的应用程序有很多页面。所以我必须编写代码 [ routes.MapPageRoute("","",""); ] 很多次。我们可以通过循环任何集合类或任何其他方法来映射所有页面吗?

谢谢

4

1 回答 1

1

如果您的 url 和文件结构有标准模式,您也可以在映射的 url 中使用占位符

例如。如果您可以将每个“{controller}/{action}/{id}”映射到“/Pages/{controler}/{action}.aspx”

例如,我构建了一个具有此文件夹结构的站点

项目文件夹结构

在根文件夹下有我所有页面所在的 Views 文件夹。在 Views 文件夹下,每个“控制器”都有一个子文件夹(webforms 中没有控制器,但我在这里遵循 MVC 约定) 在控制器子文件夹下,有代表不同操作的 aspx 页面

每个控制器的 aspx 页面名称都相同(“Index.aspx”、“Add.aspx”、“Edit.aspx”等)

所以我可以有一个通用的映射规则

routes.MapPageRoute("GeneralAction", "{controler}/{action}/{id}", "~/Views/{controler}/{action}.aspx");

只要文件夹结构遵循这种模式,我就不需要为不同的页面设置不同的规则

现在

"/Patient/Add" will map to "~/Views/Patient/Add.aspx"
"/Incident/Add" will map to "~/Views/Incident/Add.aspx"
"/Patient/Edit/31" will map to "~/Views/Patient/Edit.aspx" (with id=31)

等等,都符合上述这一规则。

当然,如果您想覆盖此规则,您可以在定义此规则之前定义更具体的路线。

于 2012-08-09T10:52:54.870 回答