首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展用于Web表单路由的RouteCollection对象

问扩展用于Web表单路由的RouteCollection对象
EN

Stack Overflow用户
提问于 2011-08-08 13:36:48
回答 1查看 1.8K关注 0票数 1

我在c#中使用c#4和web表单。

我想知道如何扩展RouteCollection Class for Web表单路由。

由于MSDN状态,RouteCollectionExtensions类仅适用于MVC路由。因此,我想知道Web表单中的等效内容是如何实现的。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-08 14:08:23

ASP.NET路由可用于.NET 4和3.5中的webforms。

有关于MSDN的指导。http://msdn.microsoft.com/en-us/library/cc668201.aspx

webforms示例要求您在global.asax中添加以下内容

代码语言:javascript
复制
protected void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("",
       "Category/{action}/{categoryName}",
       "~/categoriespage.aspx");
}

RouteCollectionExtensions类型为MVC框架提供了扩展RouteCollection的扩展方法,您可以创建自己的可拓方法来扩展RouteCollection。

下面是一个简单的例子,我相信您会希望将MyRouteCollectionExtensions放在其他地方。

代码语言:javascript
复制
using System;
using System.Web.Routing; 

namespace WebFormsExtension 
{
    public class Global : System.Web.HttpApplication
    {

        void Application_Start(object sender, EventArgs e)
        {
            RegisterRoutes(RouteTable.Routes);
        }

        public static void RegisterRoutes(RouteCollection routes) 
        {
            routes.MapCustomRoute("SampleRoute/{name}"); 
        }

    }

    public static class MyRouteCollectionExtensions
    {
        public static void MapCustomRoute(this RouteCollection routes, string url)
        {
            PageRouteHandler handler = new PageRouteHandler("~/default.aspx");
            Route myRoute = new Route(url, handler);    
            routes.Add(myRoute);
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6982946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档