0

当您使用开箱即用的 MvcContrib 网格排序时,它会自动将查询字符串 Column 和 Direction 附加到您的 URL。例如:

www.mysite.com/listing?Column=Bedrooms&Direction=Ascending

有没有办法将查询字符串(列和方向)小写,以便得到:

www.mysite.com/listing?column=Bedrooms&direction=Ascending

我正在使用带有 MvcContrib 版本 3 的 ASP.NET MVC 3。

4

1 回答 1

0

不幸的是,这些值在MvcContrib.UI.Grid.HtmlTableGridRenderer<T>类中是硬编码的:

// 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
        }
    });
}

私有方法由虚拟受保护方法CreateRouteValuesForSortOptions调用。RenderHeaderText因此,如果您想使用小写参数名称,一种可能性是编写自定义GridRenderer<T>.

另一种可能性是编写自定义 Route 以使 url 小写。您可以查看以下博客文章,该文章说明了如何将应用程序中的所有 url 设为小写,但您可以根据需要对其进行调整。

于 2011-09-11T21:11:53.420 回答