Asp.net mvc 访问除默认路由以外的任何内容时出错

Asp.net mvc 访问除默认路由以外的任何内容时出错,asp.net-mvc,routing,mono,Asp.net Mvc,Routing,Mono,我很难在mono上使用路由。默认路由可以正常工作,但其他任何路由都无法正常工作 以下是我设置的路线: routes.MapRoute( "HelloRoute", "Hello/{name}", new { controller = "Home", action = "Hello" } ); routes.MapRoute( "Default",

我很难在mono上使用路由。默认路由可以正常工作,但其他任何路由都无法正常工作

以下是我设置的路线:

        routes.MapRoute(
            "HelloRoute",
            "Hello/{name}",
            new { controller = "Home", action = "Hello" }
        );

        routes.MapRoute(
            "Default",
            "{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", id = "" }
        );
在我的HomeController上,我有相应的操作:

    public ActionResult Index ()
    {
        ViewData["Message"] = "Welcome to ASP.NET MVC on Mono!";
        return View ();
    }

        public ActionResult Hello(string name)
    {
        ViewData["Message"] = "hello "+name;
        return View ();
    }
现在,如果我导航到,我会收到欢迎来到。。。 但如果我去,我会得到一个错误:

value name controller does not match any of the values.
描述:HTTP 500。处理请求时出错

堆栈跟踪:

System.InvalidOperationException:值名称控制器与任何值都不匹配。 位于System.Web.Routing.RouteData.GetRequiredString(System.String valueName)[0x00000] 位于System.Web.Mvc.MvcHandler.ProcessRequest(System.Web.HttpContextBase httpContext)[0x00000] 位于System.Web.Mvc.MvcHandler.ProcessRequest(System.Web.HttpContext HttpContext)[0x00000] 位于System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(System.Web.HttpContext HttpContext)[0x00000] 在System.Web.HttpApplication+c__迭代器2.MoveNext()[0x00000] 位于System.Web.HttpApplication.Tick()[0x00000]

我是不是做错了什么


除了传统的路由、操作和视图之外,这是在Monodevelop中创建的一个标准asp.net mvc项目。

这看起来像是Monodevelop的asp.net mvc模板中的一个bug,如本文评论部分所述。

结果表明,这是mono路由实现中的一个bug

我在这里填写了错误报告:。
现在它已经被修复了,尽管我还没有尝试过。

刚刚在VisualStudio中创建了一个mvc应用程序并进行了尝试。正如预期的那样,所有的默认路由都工作了,但我的自定义路由也没有工作。因此,我猜mono上的mvc模板并没有太大问题,而是实际的路由问题。你一定遗漏了什么,因为我在Visual Studio 2008中做了完全相同的事情,两种路由都按预期工作。很抱歉,当我在windows上运行它时,它工作正常。在将它移动到mono+apache之后,它就不起作用了。