2012-03-22 10 views
6

できるだけ簡潔にしようとします。.NET MVCでURLにフィルターを追加する最良の方法

  • ウェブページフィルタリングを可能にし、ユーザがフィルタのビューをブックマークまたは共有できるようにソート
  • フィルタリングへ変更およびソーティングがURLに反映されるべきテーブルを含みます。

質問:すべての並べ替えとフィルタの構文をURLの一部とし、それを解釈してサーバー上で簡単に解釈/使用できるようにする有効な方法は何ですか?それ?

私はいくつかの研究を行ってきました。私はOData URIの規約に遭遇しました。彼らのやり方は好きです。 http://www.odata.org/developers/protocols/uri-conventions

さらに多くの研究では、MVC 4 Web APIがIQueryableを返すことでその規約を使用できることを示しています。これは1つの部分を除いて素晴らしいと思われます...私はこの時点でRESTfulなAPIを実装していない、それはすべてと動作するようです。だから、どのようにODataのようなものを使用して、ViewまたはPartialViewを返すことができますか? OData URIの規約をC#オブジェクトに解析するものはありますか?

誰かがこの問題や提案の洞察を持っているなら、私はすべて耳にします。

+0

MVC 4 Web Apiと言うと、Asp.Netのことを意味しますか?その場合、urlパラメータは自動的にアクションメソッドに渡され、アクションメソッドのシグネチャのように宣言するタイプとして解釈されます。 –

+0

はい、私たちはASP.NET MVCについて、私はパラメータがアクションメソッドでどのように動作するかを知っています。問題は、複雑なフィルタをURLに挿入すると、物事が毛むくじゃくするということです。私はそれを私のために処理する大会/フレームワークを望んでいました。 MVC 4のWeb APIは本当にそれに対応していますが、データAPIに焦点を当てています。私は定期的なViewsとPartialViesが必要です – Zifik

+0

最初にフィルタリストを生成していますか?それらはデータベースに保存されていますか?データセットから動的に生成されますか?ページにハードコードされていますか? – Bobson

答えて

0

あなたの質問のURL規約部分については、ODataを使用して自分の質問に回答したと思います。このデータをC#オブジェクトに取得するには、次の方法を使用します。

アクションフィルタを使用してURLパラメータを補間し、それらをC#オブジェクトに解析します。 アクションフィルタでurlパラメータをルートデータに追加すると、アクションでc#オブジェクトを使用できるようになります。

ASP.NET MVC Pass object from Custom Action Filter to Action

彼らはあなたが求めているものはかなりありませんGridActionアクションフィルタを使用し、Telerik MVCグリッドを見てみましょう。

0

私はカスタムモデルバインディングを見ます。良い概観はここに見つけることができます:http://weblogs.asp.net/nmarun/archive/2010/02/25/asp-net-mvc-model-binding.aspx

これは通常、フォームでのPOSTリクエストに使用されますが、GETリクエストにも使用できない理由はありません。プロパティとしてパラメータをソート/あなたのフィルタを使用して新しいモデルクラスを作成します

  1. :あなたのコントローラのアクションで

    public class TableParameters { 
        public string TableFilter { get; set; } 
    } 
    
  2. を、としてモデルを追加

    基本的には、あなたのアプローチをしなければなりませんパラメータ

    public ActionResult TableAction(TableParameters parameters) { /* Action logic */ } 
    
  3. パラメータをth言って、電子のURL:

    /Controller/TableAction?TableFilter=[your-filter-string] 
    

パラメータは、クエリ文字列から値を移入性質を持つことになり、あなたのアクションでオブジェクト。

+0

モデルバインディングのセキュリティ面http://odetocode.com/blogs/scott/archive/2012/03/11/complete-guide-to-mass-assignment-in-asp-net-mvc.aspx – infl3x

関連する問題