安装了 ASP.Net 4.0 的 Web 服务器,部署了 Web Pages 2.0 DLLs bin。用 cshtml/razor 编写的页面,但路由不起作用。
当仅使用网页而不是完整的 MVC(我将在 global.asax 中定义我的路由)时,服务器上需要什么来激活路由?
现在我只能使用传统的 URL 和查询字符串来调用我的页面。
任何指针表示赞赏。
安装了 ASP.Net 4.0 的 Web 服务器,部署了 Web Pages 2.0 DLLs bin。用 cshtml/razor 编写的页面,但路由不起作用。
当仅使用网页而不是完整的 MVC(我将在 global.asax 中定义我的路由)时,服务器上需要什么来激活路由?
现在我只能使用传统的 URL 和查询字符串来调用我的页面。
任何指针表示赞赏。
Web Forms application
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 application
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);
}
}
For more information :
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
I hope this will help to you.
Web Pages 框架中有两种可用的“路由”。默认路由适用于将 URL 与文件路径匹配。它非常灵活,因为它允许填充UrlData
字典的附加 URL 段,并且可以启用一些对 SEO 友好的 URL 构造。我在这里写过:WebMatrix - URLs, UrlData and Routing for SEO。
第二种路由,类似于 MVC 中可用的路由,需要安装一个包:Routing For Web Pages。一旦你安装了这个,你可以RouteCollection
在一个 _AppStart.cshtml 文件(你需要自己创建)中填充你的文件,或者你可以Application_Start
在 global.asax 中这样做。当您选择添加文件时,您可以通过在选择文件类型对话框中选择全部选项来添加 global.asax 文件。
如果你想知道如何使用 Routing 包,我也写过:更灵活的 ASP.NET 网页路由