2017-10-26 17 views
0

私はコントローラに次のメソッドを持っています。クエリ文字列asp.net mvcからデータを取得

public class CompaniesController : ApiController 
{ 

    static IList<Models.ClientCompany> list = new List<Models.ClientCompany>(); 

    public object Get(int skip) 
    { 

     list.Clear(); 
     var queryString = HttpContext.Current.Request.QueryString; 
     int skip = Convert.ToInt32(queryString["$skip"]); 
     int take = Convert.ToInt32(queryString["$top"]); 
     int countPages = 0; 

     list.Add(new Models.ClientCompany(1, "Krzak")); 
     list.Add(new Models.ClientCompany(2, "Agrawka")); 
     list.Add(new Models.ClientCompany(3, "Filut")); 
     list.Add(new Models.ClientCompany(4, "Beczka")); 
     list.Add(new Models.ClientCompany(5, "Progress")); 
     if (take == 0) 
     { 
      countPages = list.Count; 
      take = list.Count; 
     } 

     if (queryString["$inlineCount"] != null) 
     { 
      string allPages = queryString["$inlineCount"].ToString(); 
      countPages = list.Count; 
     } 
     return new { 
      Items = list.Skip(skip).Take(take),Count=countPages 
     }; 
    } 

} 

ヘッドラインメソッドのパラメータスキップを識別するために、QueryStringの代わりに何かを使用します。このような。

public object Get([some attribute]int skip) 

リクエストの例。

api/cmp/?$inlinecount=allpages&$orderby=cmpn%20desc&params=[object%20Object]&$skip=4&$top=2 
+0

「私は以下の方法があります。」と言っていますが、その方法は簡単にできません。同じスコープ内で 'skip'を複数回宣言することはできません。メソッドが入力された直後に代入するパラメータ 'skip'を持っている理由は分かりません。' ref'でも 'out'でもありません。 – Eric

+1

https://stackoverflow.com/q/12298409/728795 – Andrei

+0

のように見えます。申し訳ありません@ErikKralj 2番目の宣言を削除するのを忘れてしまいました。 – maciejka

答えて

0

ejQueryのaddParamsメソッドで追加のパラメータを渡すことで、クエリ文字列からデータを取得できます。それでも困難に直面した場合、コントローラメソッド

https://www.syncfusion.com/kb/7865/how-to-pass-additional-parameter-when-using-datamanager-in-grid

にパラメータを渡すためのKBリンク以下を参照してください、私たちにあなたがデータマネージャーを通じてグリッドにデータを結合しているかどうかのようないくつかの詳細を共有してください。そうでない場合は、プロジェクトで使用されているコントロールが何であるかを確認してください。

よろしく、 Keerthana。

関連する問題