我正在處理現有的ASP.NET webforms項目 - 慢慢更新到MVC。我試圖通過路由到新的MVC控制器來有條件地覆蓋一些現有的webforms頁面。我可以輕鬆地將「example.aspx」URL路由到MVC控制器,但如果存在現有的「example.aspx」文件,則不起作用。用MVC路由覆蓋webforms
示例代碼:
routes.MapRoute
(
name: "example",
url: "example.aspx",
defaults: new
{
controller = "Example",
action = "Index"
}
constraints: new { useMvc= "1" }
);
上面的代碼工作正常,並且如預期路由到所述控制器,除非有在我的解決方案的現有「example.aspx」文件 - 在這種情況下它路由到該代替。但這正是我想要重寫的。
現有的網絡表單路由給予優惠待遇嗎?有什麼辦法可以繞過這個嗎?
我發現了使用MapPageRoute()做相反的機制,但據我所知,這並不能幫助我。
如果您嘗試覆蓋,爲什麼不在刪除'example.aspx'後添加路線? – mason
這可能有助於http://stackoverflow.com/a/11258217/1663001 – DavidG
@mason:因爲它是基於約束的條件。有時我想重寫,但有時我需要舊功能。 –