这似乎应该很容易,但由于某种原因,我没有运气。我正在将现有的WebForms应用程序迁移到MVC,因此我需要将网站的根目录指向我现有的aspx页面,并且仅将路由应用于指定的路由。下面是我有:ASP.NET MVC路由 - 重定向到aspx?
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
RouteTable.Routes.Add(
"Root",
new Route("", new DefaultRouteHandler())
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Calendar2", action = "Index", id = "" } // Parameter defaults
);
}
所以ASPX页面应该被忽略,默认的根URL应该由该处理程序进行处理:
public class DefaultRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(
"~/Dashboard/default.aspx", typeof(Page)) as IHttpHandler;
}
}
这似乎是工作确定,但由此产生的YPOD给我这个:
找到了具有相同ID的多个控件 '__Page'。跟踪需要 控件具有唯一的ID。
这似乎意味着该页面以某种方式越来越呈现两次。如果我直接输入网址到我的仪表板页面,它可以正常工作(没有路由,没有错误)。我不知道为什么处理程序代码会做不同的事情。底线 - 我想简单地将根网址路径重定向到我选择的aspx - 任何人都可以点亮一些光线吗?
我的问题是特定于ASP.NET MVC的,所以这并不适用。 – 2010-03-30 13:45:10