我正在处理现有的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:因为它是基于约束的条件。有时我想重写,但有时我需要旧功能。 –