如果没有global.asax,ASP.NET网页的路由如何工作

时间:2012-12-18 16:04:45

标签: asp.net-mvc asp.net-mvc-routing asp.net-webpages

安装了ASP.Net 4.0的Web服务器,部署了Web Pages 2.0 DLLs bin。用cshtml / razor编写的页面,但路由不起作用。

当仅使用网页而不是完整的MVC(我在global.asax中定义了我的路由)时,服务器上需要什么才能激活路由?

现在我只能使用传统的URL和查询字符串来调用我的页面。

任何指示赞赏。

2 个答案:

答案 0 :(得分:3)

网络表单应用

<强> Global.asax中

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

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

MVC应用

<强> Global.asax中

public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );

    }

    protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);
    }
}

了解更多信息:

How to: Use Routing with Web Forms

ASP.NET Routing not working on IIS 7.0

Deploying ASP.NET MVC 3 to IIS 6

IIS URL Rewriting and ASP.NET Routing

ASP.NET Routing

我希望这会对你有所帮助。

答案 1 :(得分:1)

Web页面框架中有两种“路由”。默认路由适用于将URL匹配到文件路径。它非常灵活,它允许填充UrlData字典的其他URL段,并且可以启用一些不错的SEO友好的URL构造。我在这里写过:WebMatrix - URLs, UrlData and Routing for SEO

第二种路由类似于MVC中可用的路由,需要安装包:Routing For Web Pages。安装完成后,您可以在_AppStart.cshtml文件中填充RouteCollection(您需要自己创建),也可以在global.asax中的Application_Start中填写。{1}}。选择添加文件时,可以通过选择“选择文件类型”对话框中的“全部”选项来添加global.asax文件。

如果您想知道如何使用路由包,我也写过:More Flexible Routing For ASP.NET Web Pages