asp.net c#应用程序路由

asp.net c#应用程序路由,c#,asp.net,routing,global-asax,C#,Asp.net,Routing,Global Asax,我一直在尝试建立和运行一些路由。我基本上想要这个网址: www.example.com/SomebodysName 或 www.example.com/agents/somebodysname …去 www.example.com/portfolio.aspx?ran=somebodysname 我尝试使用MSDN中的一个示例,使用globax.asax如下: void Application_Start(object sender, EventArgs e) { Re

我一直在尝试建立和运行一些路由。我基本上想要这个网址:

www.example.com/SomebodysName

www.example.com/agents/somebodysname

…去

www.example.com/portfolio.aspx?ran=somebodysname

我尝试使用MSDN中的一个示例,使用globax.asax如下:

void Application_Start(object sender, EventArgs e) 
    {
        RegisterRoutes(System.Web.Routing.RouteTable.Routes);

    }

public static void RegisterRoutes(System.Web.Routing.RouteCollection routes)
    {
        routes.MapPageRoute("", "agents/{name}", "portfolio.aspx?ran={name}");
    }
 string name = Page.RouteData.Values["name"].ToString();
但是我不能让它工作,它说在namespace System.Web中不存在路由。
我如何才能让它以这种方式或另一种方式工作(web.config?

确保您的Global.asax有一个用于以下方面的using语句:

using System.Web.Routing;
在目标物理aspx页面上,您可以这样映射您的路由,而无需参数:

routes.MapPageRoute("AgentPortfolioByName", "agents/{name}", "portfolio.aspx");
在portfolio.aspx.cs中的代码隐藏中,您可以简单地引用
名称
值,如下所示:

void Application_Start(object sender, EventArgs e) 
    {
        RegisterRoutes(System.Web.Routing.RouteTable.Routes);

    }

public static void RegisterRoutes(System.Web.Routing.RouteCollection routes)
    {
        routes.MapPageRoute("", "agents/{name}", "portfolio.aspx?ran={name}");
    }
 string name = Page.RouteData.Values["name"].ToString();

这将确保您的ASP.NET 4+网站的URL路由按您预期/描述的方式工作。

My Global.asax现在看起来是这样的:
void应用程序\u启动(对象发送方,事件参数e){registerOutes(System.Web.routing.RouteTable.Routes);}公共静态void registerOutes(System.Web.Routing.RouteCollection routes){routes.MapPageRoute(“AgentPortfolioByName”、“agents/{name}”、“portfolio.aspx”);}
但我仍然收到相同的程序集错误18命名空间“System.Web”中不存在类型或命名空间名称“Routing”(ar..@Jesper您安装的是ASP.NET 3.5还是4.0
webforms
网站?@balalexandre.我不确定:)在参考资料中,它说的是版本3.5.0.0,但在构建->目标框架中,它说的是4.0。此外,这是一个网站(文件夹结构)不是一个web应用程序项目,因此global.asax没有代码隐藏文件,如果这很重要的话…我已经让它工作了,现在我已经将配置修改为target.net 4.0。它工作起来很有魅力,非常感谢。但有一件有趣的事情是,当加载:www.website.com/agents/agents%20name时,所有图像/js/css都丢失了。我想这是因为我现在必须添加
。/
,因为“代理”文件夹不存在。这是否正常?建议编辑您的问题以显示错误以及代码的设置方式?