当您使用开箱即用的MvcContrib网格排序时,它会自动将查询字符串列和方向附加到您的URL。例如:
www.mysite.com/listing?Column=Bedrooms&Direction=Ascending
有没有办法小写查询字符串(列和方向),以便你得到这个:
www.mysite.com/listing?column=Bedrooms&direction=Ascending
我正在使用带有MvcContrib版本3的ASP.NET MVC 3。
答案 0 :(得分: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小写。您可以查看following blog post,其中说明了如何将应用程序中的所有网址设置为小写,但您可以根据需要进行调整。