paginacion net mvc framework bootstrap asp model-view-controller path pagination query-string

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