【问题标题】:ASP.NET MVC Routing - Redirect to aspx?ASP.NET MVC 路由 - 重定向到 aspx?
【发布时间】:2010-03-30 06:47:39
【问题描述】:

这似乎应该很容易,但由于某种原因我没有运气。我正在将现有的 WebForms 应用程序迁移到 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。

这似乎意味着页面以某种方式被渲染了两次。如果我只是直接在我的仪表板页面中输入 url,它就可以正常工作(没有路由,没有错误)。我不知道为什么处理程序代码会做不同的事情。

底线——我想简单地将根 url 路径重定向到我选择的 aspx——任何人都可以解释一下吗?

【问题讨论】:

    标签: asp.net asp.net-mvc url-routing asp.net-mvc-routing


    【解决方案1】:

    我不太明白你的问题,可能是我不够熟练。无论如何我会尝试... ;)

    如果你想从根路径重定向,为什么不使用 IIS 的默认文档,例如把它放到 index.aspx 中,然后在这个页面中添加一个 response.redirect 到你想要重定向到的页面?

    【讨论】:

    • 我的问题是针对 ASP.NET MVC 的,所以这并不适用。
    【解决方案2】:

    嗯嗯。所以我的浏览器由于某种不相关的原因崩溃了,现在我已经重新启动它,上面的代码似乎可以按预期完美运行。由于浏览器重新启动,服务器端代码现在的行为方式会有所不同,我完全感到困惑(我猜显然有些东西被错误地缓存了),但现在看来这不是问题了。

    编辑:嗯,这实际上仍然是一个问题——不知道为什么它以前有效,但它有点随机。底线似乎是 MVC 在某些情况下似乎不能很好地与 Trace.axd 解析器配合使用,否则会产生完全有效的标记。我真的没有很好的解释,但是在 web.config 中禁用跟踪会绕过错误。就我现在的目的而言,这已经足够好了,但我很想听听其他人的更好解释……

    【讨论】:

      猜你喜欢
      • 2013-09-07
      • 2010-09-19
      • 2017-05-13
      • 1970-01-01
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多