Mire en routes. Definen cómo se escribirá una url con parámetros.
Si crea una nueva aplicación MVC, y mira el archivo Global.asax.cs en `RegisterRoutes(). deberías ver una entrada.
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "home", action = "index", id = UrlParameter.Optional } // Parameter defaults
);
vistazo a cada parte:
- "defecto" es el nombre. Esto solo tiene que ser exclusivo para cada ruta que crees.
- "{controller}/{action}/{id}" es el patrón que desea utilizar.
example.org/home/index?id=2
se escribirá example.org/home/index/2
en su lugar
- nuevo {controller = "home", action = "index", id = UrlParameter.Optional} está definiendo los valores predeterminados si no se especifica nada.
Por lo tanto, esa ruta que sea así que si vas a example.org se asumirá que quiere decir example.org/home/index{id es opcional}.
Trabajando desde ahí, puede comenzar a ver cómo crear sus propias rutas.
Ahora, dirigiéndose a su pregunta, la respuesta corta es sí que podría hacer la URL que parezca, pero no realmente. Tendría que definir una ruta con un mensaje predeterminado, y solo se vería así si alguien no especificara un mensaje. Tienes que decirle al controlador cuál es el mensaje. Lo siento, pero lo mejor que puede hacer es definir una ruta que le proporcione
/message/Hello%20World
y una cadena.reemplace para que se vea aún mejor `'/ message/hello_world'
¿Estás diciendo que quieres un mensaje predeterminado cuando no ingresan una cadena de consulta? ¿O que desea ocultar la cadena de consulta independientemente del tipo de mensaje enviado en la url inicialmente? –
El segundo, básicamente quiero procesar el mensaje (puede ser cualquier cosa) y no mostrarlo en la url. – willvv