GRIMA MVCContrib Grid Sordstrings di smistamento
-
28-10-2019 - |
Domanda
Quando si utilizza l'ordinamento della griglia MVCContrib, aggiunge automaticamente la colonna di QueryStrings e la direzione al tuo URL. Per esempio:
www.mysite.com/listing?Column=Bedrooms&Direction=Ascending
C'è un modo per abbassare le querystrings (colonna e direzione) in modo da ottenere questo:
www.mysite.com/listing?column=Bedrooms&direction=Ascending
Sto usando ASP.NET MVC 3 con MVCContrib versione 3.
Soluzione
Purtroppo quei valori sono codificati con codifica rigida in MvcContrib.UI.Grid.HtmlTableGridRenderer<T>
classe:
// MvcContrib.UI.Grid.HtmlTableGridRenderer<T>
private RouteValueDictionary CreateRouteValuesForSortOptions(GridSortOptions sortOptions, string prefix)
{
if (string.IsNullOrEmpty(prefix))
{
return new RouteValueDictionary(sortOptions);
}
return new RouteValueDictionary(new Dictionary<string, object>
{
{
prefix + ".Column",
sortOptions.Column
},
{
prefix + ".Direction",
sortOptions.Direction
}
});
}
Il CreateRouteValuesForSortOptions
Il metodo privato è invocato dal RenderHeaderText
Metodo protetto virtuale. Quindi, se vuoi avere i nomi dei parametri minuscoli, una possibilità sarebbe scrivere un'usanza GridRenderer<T>
.
Un'altra possibilità è quella di scrivere un percorso personalizzato per rendere gli URL minimi. Puoi dare un'occhiata al seguendo il post sul blog Il che illustra come fare in modo che tutti gli URL in un'applicazione siano minuscoli, ma è possibile modificarlo alle tue esigenze.