我无法使用单声道工作路由。默认路由工作正常但没有别的办法。
这些是我设置的路线:
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 ();
}
现在如果我导航到http://localhost/我收到消息欢迎光临...... 但如果我去http://localhost/Hello/World我会收到错误:
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__Iterator2.MoveNext()[0x00000] 在System.Web.HttpApplication.Tick()[0x00000]
我在做一些明显错误的事情吗?除了aditional路线,动作和视图,这是在Monodevelop中创建的标准asp.net mvc项目。
答案 0 :(得分:1)
这似乎是MonoDevelop的ASP.NET MVC模板中的错误,如post的评论部分所示。
答案 1 :(得分:1)
事实证明这是单声道路由实现中的一个错误。
我在这里填写了一个错误报告:https://bugzilla.novell.com/show_bug.cgi?id=500739。 它现在已经修复,虽然我还没有尝试过。