Erro ao acessar qualquer coisa, exceto a rota padrão
-
03-07-2019 - |
Pergunta
Estou tendo problemas para fazer o roteamento para trabalhar no Mono. A rota padrão funciona bem, mas nada mais faz.
Estas são as rotas que eu configurei:
routes.MapRoute(
"HelloRoute",
"Hello/{name}",
new { controller = "Home", action = "Hello" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
E no meu controlador de casa, tenho a ação correspondente:
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 ();
}
Agora, se eu navegar para http: // localhost/ Eu recebo a mensagem bem -vinda a ... mas se eu for para http: // localhost/hello/mundo Eu recebo um erro:
value name controller does not match any of the values.
Descrição: HTTP 500. Solicitação de processamento de erro.
Stack Trace:
System.InValidoPoperationException: O Valor Name Controller não corresponde a nenhum dos valores. em system.web.routing.routedata.getRequiredString (System.String Valuename) [0x00000] em System.web.mvc.mvchandler.processRequest (System.web.httpContext HttpContext) [0x00000] no sistema (System.web.httpContext httpContext) [0x00000] em system.web.mvc.mvchandler.system.web.ihtphandler.processRequest (system.web.httpContext httpContext) [0x00000]. [0x00000] em system.web.httpapplication.tick () [0x00000
Estou fazendo algo obviamente errado?
Além da rota adicional, ação e visualização, este é um projeto padrão do ASP.NET MVC criado no Monodevelo.
Solução 2
Acontece que isso foi um bug na implementação de roteamento mono.
Preenchi um relatório de bug aqui: https://bugzilla.novell.com/show_bug.cgi?id=500739. E agora foi corrigido, embora eu ainda não tenha tentado.
Outras dicas
Parece um bug nos modelos do ASP.NET MVC para o Monodevelop, conforme sugerido na seção de comentários deste publicar.