這似乎應該很容易,但由於某種原因,我沒有運氣。我正在將現有的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