更新! 所以我认为我已经解决了这个问题 - 它又回来了。我的忽略路线似乎被忽略了。每个请求都被重定向:(
我有一个正在开发的 MVC 站点,其中大部分都在 EXTJS 中,所以它们只使用一个控制器、主页和登录视图。非常标准的设置 - 这是上周工作的,在 Home 控制器上调用 Index 操作,它立即重定向到 login 操作。好的 - 很好,这是预期的行为。
只是现在,每个链接的文件,css 或 javascript,都被重定向回同一个登录页面。例外情况是通过 rest Uri 获取的几个脚本文件。因此,我下载了在此处传递的路由调试器,并将 URL 传递给了其中一个脚本文件。它立即重新格式化并重定向到登录页面,并将 returnurl 参数设置为我正在寻找的文件。这让我认为请求在命中任何 mvc 路由之前被重定向。这可能吗?我可以采取哪些进一步的步骤来调试此问题?
这是我的 global.asax 文件的路由内容:
/// <summary>
/// Registers the routes.
/// </summary>
/// <param name="routes">The routes.</param>
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute(@"{resource}.axd/{*pathInfo}");
routes.IgnoreRoute(@"resources/*"); //Redirecting!! Css and image files
routes.IgnoreRoute(@"wcfrestbusinesslogic/*"); //This one works fine
routes.IgnoreRoute(@"ext/*"); //These are also redirecting
routes.IgnoreRoute(@"{*favicon}",
new
{
favicon = @"(.*/)?favicon.ico(/.*)?"
});
routes.MapRouteLowercase(@"PasswordReset",
@"{action}/{guid}",
new
{
controller = @"home",
action = @"index"
},
new
{
IsHome = new IsHomeActionConstraint(),
guid = @"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$"
});
routes.MapRouteLowercase(@"Home",
@"{action}/{output}",
new
{
controller = @"home",
action = @"index",
output = UrlParameter.Optional
},
new
{
IsHome = new IsHomeActionConstraint(),
output = @"(json|xml|pdf|jpg|jpeg|tiff|png|csv)?"
});
routes.MapRouteLowercase(@"Home2",
@"{action}/{id}/{output}",
new
{
controller = @"home",
action = @"index",
id = UrlParameter.Optional,
output = UrlParameter.Optional
},
new
{
IsHome = new IsHomeActionConstraint(),
id = @"[0-9]{1,}",
output = @"(json|xml|pdf)?"
});
routes.MapRouteLowercase(@"Home3",
@"{action}",
new
{
controller = @"home",
action = @"index"
},
new
{
IsHome = new IsHomeActionConstraint()
});
routes.MapRoute(@"Action",
@"{controller}/{action}/{output}",
new
{
controller = @"Home",
action = @"Index",
output = UrlParameter.Optional
},
new
{
output = @"(json|xml|pdf|png|csv)?"
});
routes.MapRoute(@"Default",
@"{controller}/{action}/{id}/{output}",
new
{
controller = @"Home",
action = @"Index",
id = UrlParameter.Optional,
output = UrlParameter.Optional
},
new
{
id = @"[0-9]{1,}",
output = @"(json|xml|pdf)?"
});
}