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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top