2012-07-04 14 views
5

En mi archivo de ASP.NET MVC 4 de aplicación RouteConfig, he registrado la siguiente ruta por defecto:Quitar barra final en ASP.NET MVC 4 Ruta a raíz de la aplicación

routes.MapRoute("Default", "{controller}/{action}/{id}", 
    new { controller = "home", action = "index", id = UrlParameter.Optional }); 

Ahora, en mi punto de vista de afeitar, me Quiero generar una URL para la raíz de mi aplicación así:

<a href="@Url.Action("index", "home")">Home</a> 

La URL generada incluye una barra inclinada; al hacer clic en el enlace, se abre la página localhost/IISApplicationName /. Sin embargo, deseo que la URL no contenga la barra inclinada final para que la URL sea localhost/IISApplicationName. La generación de rutas para otras acciones, como /Account/Login, no crea URLs con barras diagonales inversas; se trata simplemente de la ruta que enlaza con la raíz de mi aplicación.

¿Hay alguna manera de evitar que el enrutamiento ASP.NET MVC agregue la barra diagonal posterior a la ruta anterior?

(sé que puedo cambiarlo desde la URL que incluye la barra a la que sin ella, pero yo prefiero enrutamiento generar la URL ruta correcta en el primer lugar.)

+1

no puedo duplicar su problema utilizo 'route' defecto y va a la URL sin'/' –

+1

sólo para información, ¿cuál es el problema con la barra final? –

+0

@alexanderb 1) Ambos enlaces terminan mostrando la misma página a pesar de tener URL ligeramente diferentes. No es bueno ... 2) Es feo ;-). –

Respuesta

0

¿Hay ¿Hay alguna manera de evitar que el enrutamiento ASP.NET MVC anexe la barra diagonal posterior a la ruta anterior?

Debe pasar una barra inclinada cuando la ruta relativa esté vacía. Si de alguna manera genera enlaces con href localhost/IISApplicationName, el navegador agrega una "/" al final (puede verificar esto fácilmente en firebug, simplemente escriba http://stackoverflow.com en la barra de direcciones del navegador y revise la pestaña de solicitudes, puede ver el final "/")

esto es porque de acuerdo con el HTTP/1.1,

la ruta absoluta no puede ser emtpy; si no hay ninguno presente en el URI original , se dará como "/" (la raíz del servidor).

http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGcaRbqU (sección 5.1.2)

Cuestiones relacionadas