Asp.net mvc 访问除默认路由以外的任何内容时出错
我很难在mono上使用路由。默认路由可以正常工作,但其他任何路由都无法正常工作 以下是我设置的路线: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",
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之后,它就不起作用了。