3

MVC の WebGrid でページングと並べ替えを有効にすると、並べ替えとページのパラメーターがクエリ文字列に自動的に追加されます。それはどのように行うのですか?ページ n のリンクを作成する方法は理解できますが、クエリ文字列を読み取って生成するページを知るにはどうすればよいでしょうか?

私を本当に混乱させているのは、コントローラーで、ページとソートのパラメーターを指定する必要がないということですが、とにかく機能します。これはどのような魔術ですか?

私が十分に明確でなかった場合に備えて、

ここにグリッドビューの定義があります

@{ var grid = new WebGrid(Model.Customers, rowsPerPage: 25, canPage: true }); }

生成されるクエリ文字列は次のとおりです。

/Customer?sort=Notes&sortdir=ASC

と私の Customer.Index コントローラー

//no parameters here. how does WebGrid maintain querystring?
public ActionResult Index() 
{
    ...
}
4

1 に答える 1

2

簡単に言えば、 から値を抽出するだけでHttpContext.Request.QueryString、魔法のようなものではありません。

たとえば、並べ替えフィールドにアクセスする場所は次のとおりです。

    public string SortColumn {
        get { 
            if (!_sortColumnSet) { 
                string sortColumn = QueryString[SortFieldName];
                // blah blah blah
            } 
            // blah blah blah
            return _sortColumn;
        } 
        set {
            // blah blah blah omitted for brevity
        } 
    }
于 2012-05-14T21:23:27.517 に答える