model view controller - net - En MVC, ¿debería la información de paginación entrar en la ruta o cadena de consulta?
paginacion mvc 5 c# (6)
¿Existe un método canónico para determinar qué sucede en MVC, o realmente depende del desarrollador?
Tu decides.
MVC se trata de la organización / flujo de su código de servidor y de separar la vista de la capa de negocio, no tanto de los parámetros de consulta.
En el camino:
Formato: http://mydomain.com/ {category} / {subcategory} / {pageNumber} / {pageSize}
Ejemplo: http://midominio.com/books/thriller/3/25
En la cadena de consulta:
Formato: http://mydomain.com/ {category} / {subcategory}? pageNumber = {pageNumber} & pageSize = {pageSize}
Ejemplo: http://midominio.com/books/thriller?pageNumber=3&pageSize=25
Me gusta tener todo en el camino, pero mi problema con eso es que si bien es obvio (o al menos algo obvio) qué "libros" y "novela de suspense" están en el primer ejemplo, el "3" y "25" parecen bastante arbitrarios por el contrario.
¿Hay algún método canónico para determinar qué sucede en MVC, o realmente depende del desarrollador?
Bueno, obviamente depende de ti. Pero, estás diseñando una interfaz RESTful que se supone que es legible para el ser humano. La cadena de consulta es mucho mejor en ese sentido. De lo contrario, estás viendo dos números que realmente podrían ser cualquier cosa. ¿Y quién recordará la orden?
Es más o menos del desarrollador. Yo diría poner el tamaño de página en la URL.
También podría considerar lo siguiente
Formato
http://mydomain.com/{category}/{subcategory}/page/{pageNumber}/results/{pageSize}
Ejemplo
http://mydomain.com/books/thriller/page/3/results/25
Prefiero cosas como pagenumbers para estar en las variables querystring. Creo que hay una diferencia en la descripcion entre
http://mydomain.com/books/thriller?pagesize=50&page=4
y
http://mydomain.com/books/thriller/50/4
El punto (para mí) de tener una URL limpia es que sean más descriptivos y legibles, y creo que el primer ejemplo es exactamente eso.
Un punto interesante hecho por JohnRudolfLewis es:
Una regla de oro que sigo es que si se requiere el argumento, considere usar la ruta, si el argumento es opcional, siempre use argumentos querystring.
Una regla de oro que sigo es que si se requiere el argumento, considere usar la ruta, si el argumento es opcional, siempre use argumentos querystring.
En general, me atengo a lo que sea que haga que la URL parezca más legible.
Este sitio lo coloca en la cadena de consulta: https://.com/questions?page=2&pagesize=30