2010-08-22 10 views
11

ASP.NET MVC trata el carácter de punto como un literal para las rutas for a long time. Sin embargo, no coincide con la ruta si el punto está al final de la parte de la ruta dada.¿Cómo conseguir que ASP.NET MVC coincida con el carácter de punto (".") Al final de una ruta?

Teniendo en cuenta la ruta {controller}/{action}/{id} MVC coincide con éstos:

http://test/somecontroller/someaction/some.id 
http://test/somecontroller/someaction/....some.id 

Pero no estas:

http://test/somecontroller/someaction/someid. 
http://test/somecontroller/someaction/someid... 

Mi requisito es tener un número arbitrario de puntos en cualquier lugar de la sección de identificación. ¿Hay alguna manera de solucionar esto o se trata de una situación conocida que debemos evitar? Me parece un error MVC 2.

P.S. También puede reproducir el mismo comportamiento en StackOverflow añadiendo puntos a la cadena de preguntas en la URL en diferentes lugares.

EDITAR: Lo sentimos, parece ser un duplicado de "The resource cannot be found." error when there is a "dot" at the end of the url. No pude encontrarlo antes.

Respuesta

11

Si está utilizando .NET 4.0, se puede establecer esta bandera en la sección system.web de su web.config y se le permitirá:

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 

Lo he probado y funciona. Haack tiene una explicación de eso.

+0

Esto simplemente funcionó. ¡Gracias! –

+1

¿qué pasa con IIS 6 y ASP.NET 4.0? Todavía tengo este error en producción (iis6) pero no en mi máquina (iis7) – Serhiy

+0

Сергій, ¿resolvió su problema? Tengo el mismo problema: http://stackoverflow.com/questions/9336569/iis-6-not-allowing-periods-in-the-querystring – Roger

Cuestiones relacionadas