检查是否存在任何http查询,而不是参数

时间:2012-10-26 19:31:12

标签: c# asp.net-mvc asp.net-mvc-3 razor webgrid

由于MVC3 WebGrid排序默认是通过查询字符串提升,& sortdir = ASC ..我想知道如何通过降序排序。

我在下面尝试过使用Request.QueryString,但是在这种情况下,绝对没有查询字符串"?..",这看起来没有工作:

// Force a descending sort on page load when query string is empty
if(Request.QueryString[grid.SortDirectionFieldName].IsEmpty()){
    grid.SortDirection = SortDirection.Descending;
}

由于我最初有一个像..Admin / Review这样的路径,而不是../Admin/Review?sort=Question6&sortdir=ASC,我该如何测试这个案例?如果甚至没有查询参数,上述条件是否仍会返回?

我相信我需要从原始网址中提取查询,如果它不存在,请将我的排序方向设置为降序。

3 个答案:

答案 0 :(得分:3)

您可能需要将if语句更改为:

 if( string.IsNullOrEmpty(Request.QueryString[grid.SortDirectionFieldName]) ){
     //sort desc
 }

答案 1 :(得分:1)

这会有用吗?除非querystring变量显式为“ASC”,否则它将默认为Descending。

        if (Request.QueryString[grid.SortDirectionFieldName] == "ASC")
        {
            grid.SortDirection = SortDirection.Ascending;
        }
        else
        {
            grid.SortDirection = SortDirection.Descending;
        }

答案 2 :(得分:0)

最终使用JS:

$(document).ready(function () {
    var ignoreURL = window.location.href.replace('DESC', 'ASC');
    $('#grid th a').each(function () {
        if (this.href.indexOf('ASC') > -1 && this.href != ignoreURL) {
            this.href = this.href.replace('ASC', 'DESC');
        }
    });
});