ASP.NET 路由

所需积分/C币:10 2011-12-17 09:47:57 204KB PDF
4
收藏 收藏
举报

ASP.NET 路由使您可以使用不必映射到网站中特定文件的 URL。由于该 URL 不必映射到文件,因此可以使 用对用户操作进行描述因而更易于被用户理解的 URL。
类的 方法 下表显示了默认 模式,并给出由默认路由处理的 请求的示例 默认模式 匹配示例 包括了具有模式 的路由,以邐免对 资源文件(例如 或 )的请求传递给控制器。 对于 不需要文件扩展名。对于 ,必须向 模式添加 文件扩展名,如下面的示 例所示 复制 向在 窗体应用程序中添加路由 窗体应用程序中,通过使用 类的 方法来创建路由 方法创建 对象,并将其添加到 对象。可 以在传递到 方法的参数中指定 对象的属性。 通常情况下,您在 文件中 事件的处理程序调用的方法中添加硌由。该方 法可确俣应用稈序启动时路可用。还使您能够在对应用稈序进行单元测试时直接调用方法。如果您想在对 应用程序进行单元测试吋直接调用一个注册路由的方法,则该方法必须是静态的( 中的 ),并且必须具有一个 参数 下面的示例演示从 文件中添加一个 对象的代码,该对象定义了名为 和 的两 参数。具有指定模式的 定向到名为 的物理页。 复制 向 应用程序中添加路由 如果通过创建派生自 类的类并赋予它们以“ ”结尾的名称来采纳实现控制器 的惯例,则不需要在应用稈序中手动添加路巾。预先配置的路巾将调用您在控制器类中实现的 操作方法。 如果想要在 应用程序中添加自定义路由,请使用 方法,不要使用 方法。 下面的示例演示在 文件(该文件是在 应用程序的 项目模板中定义的) 中创建默认 路由的代码 复制 设置 参数的默认值 定义路由时可以为参数分配一个默认值。如果没有包括该参数的值,则会使用默认值。通过将字典对 象分配给 类的 属性,可以改置路由的默认值。下面的示例演示如何使用 方法添加具有默认值的 由。 复制 路由处理请求时,在小例中演小的路由定义(使用针对 的默认值 和针对 的 的默认值)得到下表列出的结果。 参数值 (默认值) (默认值) (默认值) 对于 应用程序,通过 方法的重载(例如 )可以指定默认值。 在 模式中处理可变数量的段 有时您需要处理包含可变数量的段的请求。定义路由时,可以指定是否具有比模式中更多 的段,是否将额外的段视为最后一个段的一部分。若要以此方式处理额外的段,可以用星号 标记最后 个参数。该参数称为“可用于放置各和信息的”参数。具有全部捕捉参数的路由也将与那些不包含最后 参数的仁意值的 相匹配。下面的示例演示一个与未知数量的段匹配的路由模式 路由处理请求时,在示例中演示的路由定义得到下表列出的结果 参数值 向路由添加约束 狳了按照 中的参数数量将请求匹配到路由定义中,还可以指定参数中的值满足特定约束。如果 个包含路由的约束以外的值,则该路由不用于处理请求。添加约束以确保参数包含将在应用程序 中起作用的值。 约束是通过使用正则表达式或使用实现 接口的对象来定义的。将路由定义添邡到 集合时,同时也通过创建一个包含验证测试的 对象添加了约束。字典 中的关键字标识约束适用的参数。字典中的值可以是表示正则表达式的字符串,也可以是实现 接口的对象。 提供字符串后,路由将视字符串为正则表达式,并通过调用 类的 方法检查参数值是 杏有效。总是将正则表达式视为不区分大小写。有关更多信息,请参见 正则表达式 提供 对象后 路由将通过调用 对象的 方 法检査参数值是否有效。 方法返回一个布尔值,该值指小参数值是否有效 下面的示例演示如何使用 方法创建具有约束的路由,该约束限制可在 和 参数中包括的值。(在 应用程序中,使用 方法。) 复制 路由处理请求时,在上一示例中演示的路由定义生成下表列出的结果。 结果 无匹配。和都是必需的 无匹配。对的约束需要个数字 没有应用路由的方案 在某些情况下,即使为网站启用了请求, 路巾也不处理请求。本节介绍路巾不处理请求的一些情 况 找到匹配 模式的物理文件 默认情况下,路由不处理映射到 服务器上现有物理文件的请求。例如,如果 上存在物理文件,则路由不处理对 的请求。即使匹一个定义的模式(例 如 ),路由也不处理该请求 如果希望路由处理所有请求(包括指向文件的请求),可以通过将 对象的 属性设置为 来重写默认行为。将该值设置为 后,与定义的模式匹配的所 有请求都将由路由处理。 为模式显式禁用路由 还可以指定跻巾不应处理某些请求。通过定义路巾并指定应使用 类来处理 该模式,来阻止路由处理某些特定请求。当 对象处理请求时, 对象会阻止以任何其他方式将该请求处理为路由。而是会将该请求处理为 页 服务或其他 终结点。可以使用 方法(对于 应用程序,为 )创建使用 类的路由。下面的示例演示如何阻止路由处理 文件的请求 复制 如何与路由匹配 路由在处理 请求时,还尝试将请求的与路由匹配。将请求与路由匹配取决于以下所有条 件: 包括在项目类型中的已经定义的路由模式或默认路由模式(如果有的话)。 将路由添加到 集合中的顺序。 已经提供给路由的所有默认值。 经提供给路由的任意约束 是否定义路由来处理匹配物理文件的请求 为避免错误的处理程序处理请求,必须在定义路由吋考虑以上所有条件。出现在 集合中的 对象的顺序是很重要的。路由将在集合的整个路由过程中一直尝试儿酉。当匹蓖发生时,无法计算 更多的路由。通常,按从路由定义的只体性递诚的顺序将路由添加到 属性 例如,假定您使用以下模式添加路由: 路由设置为 路由改置为 路由将不再处理请求,这是因为首先计算路由,路由始终匹配同样适用于路由的请求。对 的请求似乎能更好地匹配路由,但它是由路由使 用下列值处理的 为 为 如果请求缺少参数,则会使用默认值。因此,可能导致路由匹配意外的请求。例如,假定您使用以下模式添 加路巾: 路由 ,对于 和 使用默认值。 路由 对于 使用默认值。 路巾将水远不处请求。路巾可能用于月度报表,而路巾可能用于年度报表。但是,路巾中的 默认值意味着将匹配同时适用于路由的所有请求。 可以通过在模式中包括例如 和 的常量 来避免二义性。 如果 与在 集合中定义的任何 对象都不匹配 路由将不处理请求 相反,会将处理传递给 页、 服务或其他 终结点。 从路由创建 如果想要在站点中创建页的超链接,可以使用模式通过编程方式来创建对应于路由的当更改模 式时,将白动生成匹配新模式的有关如何在代码或标记中生成的信息,请参见如何:通过路由 构造 路由页面中的 访问参数 在已路由的页请求的处理程序中,可以使用代码或标记访问占位符中传递的值。有关更多信息,请参 见如何:在路由页面中访间 参数 刈于 应用程序, 框架自动处理占位符中传递的值。有关更多仨息,请参见在 应用程序中传递数据 路由和安全性 授权规则可以仅应用于路由,也可以同时应用于路由和它映射到的物理 例如,授权规则 可以指定所有用户可以访问以 开头的 但是只有管理员可以访问 页。如 果路由 模式 映射到物理 且您仅将授权规则应用于路由 则当使用路由请求 时允许所有用户访问 。但是,当使用物理请求它时, 只有管理员可以访问它。 默认情况下,授权规则同时应用于路由和物理。有关更多信息,请参见 属性。 类参考 下表列出 路由的关键服务器类 类 说明 表示 窗体或 应用程序中的路由。 表示动态数据应用程序中的路巾 用作表示 路由的所有类的基类。 存储应用程序的路由。 提供使您可以管理路由集合的方法。 提供使您可以在 应用程序中管理路由集合的其他方法。 包含所请求路由的值 包含有关对应于路由的 请求的信息 提供一种方式,来指定 路巾不应处理模式的请求 提供用于定义窗体应用程序的路由的方法 提供用于存储路由 和 对象 的方法。 提供用于从路由信息生成的方法。 路由与 重写 路巾不同于 重写。 重写通过在将请求发送到网页之前实际更改来处理传入请求。 例如,一个使用 重写的应用程序可能会将从 更改为 。此外,重写通常没有相应的来创建基于模式的 在重写中,如果更改了 模式,则必须手动更新包含原始 的所有超链接 由于 路由可以从提取值,所以处理传入请求时不更改 如果必须创建一个 将参数值传递到为您佧成的方法中。若要更改模式,请在某位置更改该模式,您在应用稈序屮刽 建的基于该模式的所有链接将自动使用新模式 请参见 任务 演练:在 窗体应用程序中使用 路由 如何:通过路巾构造 如何:在路巾页面中访问参数 如何:定义 窗体应用程序的路出 参考 概念 基础结构 其他资源 的迁移向题 连接资料表

...展开详情
试读 11P ASP.NET 路由
立即下载 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
ASP.NET 路由 10积分/C币 立即下载
1/11
ASP.NET 路由第1页
ASP.NET 路由第2页
ASP.NET 路由第3页

试读结束, 可继续读1页

10积分/C币 立即下载