asp.net core 系列 8 Razor框架路由(下)

 

三.页面路由操作约定

   接着上篇讲asp.net core 系列 7 Razor框架路由。在上篇继续第三节 "页面路由操作约定" 的最后一小节 AddPageRoute 。

 

  3.3. 配置页面路由AddPageRoute

    使用 AddPageRoute 配置路由,该路由与指定页面关联, 使用指定的路由生成页面链接。 AddPageRoute 使用 AddPageRouteModelConvention 建立路由。

    示例应用为 Privacy.cshtml 创建指向 /ThePrivacyPage 的路由:

    options.Conventions.AddPageRoute("/Privacy", "ThePrivacyPage/{text?}");

    可以通过原有 / Privacy默认路由访问“Privacy”页面。http://localhost:60397/Privacy

    也可以通过上面自定义的页面路由访问Privacy页面。 http://localhost:60397/ThePrivacyPage

    示例应用的“Privacy”页面自定义路由允许使用可选的 text 路由段 ({text?})。 该页面还在其 @page 指令中包含此可选段,以便访问者在 /Privacy 路由中访问该页面。在呈现的页面中,为Privacy链接生成的 URL 显示了已更新的路由,如下所示:

 

四. 页面模型操作约定

    实现 IPageApplicationModelProvider 的默认页面模型提供程序可调用约定,这些约定旨在为页面模型配置提供扩展点。 在生成和修改页面发现及处理方案时,可使用这些约定。这里继续使用上篇讲的 AddHeaderAttribute 类(一个ResultFilterAttribute)来应用响应标头。

    

  4.1 文件夹应用模型约定

    使用 AddFolderApplicationModelConvention 创建并添加 IPageApplicationModelConvention,后者可以为指定文件夹下的所有页面调用 PageApplicationModel 实例上的操作。   示例演示了如何使用 AddFolderApplicationModelConvention 将标头 OtherPagesHeader 添加到应用的OtherPages 文件夹内的页面:

复制代码
            //文件夹应用模型约定                        options.Conventions.AddFolderApplicationModelConvention("/OtherPages", model =>                         {                             model.Filters.Add(new AddHeaderAttribute(                                 "OtherPagesHeader", new string[] { "OtherPages Header Value" }));                         });
复制代码

    在OtherPages/Page1 中请求示例的 Page1 页面,并检查标头以查看结果:

 

  4.2 页面应用模型约定    

    使用AddPageApplicationModelConvention创建并添加IPageApplicationModelConvention ,它在调用操作PageApplicationModel页使用指定的名称。示例演示了如何使用 AddPageApplicationModelConvention 将标头 AboutHeader 添加到“About”页面:

复制代码
                    //页面应用模型约定                        options.Conventions.AddPageApplicationModelConvention("/Privacy", model =>                         {                                                         model.Filters.Add(new AddHeaderAttribute(                                 "PrivacyHeader", new string[] { "Privacy Header Value" }));                         });
复制代码

    请求示例的 Privacy页面,并检查标头以查看结果:

 

  4.3 配置筛选器

    ConfigureFilter 可配置要应用的指定筛选器。 用户可以实现筛选器类,但示例应用演示了如何在 Lambda 表达式中实现筛选器,该筛选器在后台作为可返回筛选器的工厂实现:

复制代码
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信