2011-01-07 14 views
0

私はasp.net mvcの初心者です。オートコンプリートフィルターのコントローラーを作成することをお勧めしますか?

私はstackoverflowのような '自動補完タグ検索'機能を作成する必要があります。私の意図は、JsonResultでコントローラを作成して、input-text要素を自動完成させるためのフィルタリングされたタグを取得することです。これは良い習慣ですか?はいの場合は、避ける必要があるものについての推奨事項はありますか?

ありがとうございます。

PS .:貧しい人々のために申し訳ありません。

答えて

1

複数のフィルタパラメータがあっても結果セットが異なるタイプでない限り、複数のアクションを作成する必要がなくても、kekekelaによって提案されたソリューションを使用できます。例:

[HttpPost] 
    [Authorize] 
    public JsonResult FilterTasks(int maxResults, string users = "", string tags = "", string categories = "") 
    { 
     List<int> userIdList = MyHelper.GetIntList(users); 
     List<string> tagNameList = MyHelper.GetStringList(tags); 
     List<string> categoryIdList = MyHelper.GetStringList(categories); 
     var tasks = from task in projectsEntities.Tasks select task; 
     if (userIdList.Count > 0) 
      tasks = tasks.Where(task => userIdList.Contains(task.UserId)); 
     if (tagNameList.Count > 0) 
      tasks = tasks.Where(task => tagNameList.Contains(task.TagName)); 
     if (categoryIdList.Count > 0) 
      tasks = tasks.Where(task => categoryIdList.Contains(task.CategoryId)); 
     var topTasks = tasks.Take(maxResults).ToArray(); 
     return Json(topTasks); 
    } 
1

コントローラーの操作を意味する場合ははい、これが私のやり方です。新しいコントローラを追加することもできますが、通常、既存のコントローラにメソッドを追加しただけです。

+0

ありがとうございます!私は多くのフィルタが必要な場合?私のすべてのフィルタのためのコントローラを作成することをお勧めしますか?例:/ filter/tags /、/ filter/users、/ filter/categoriesなど – wallybh

1

コントローラをバイパスする理由がわかりません。彼らはあなたの呼び出しがパターンに従うことを保証します。私はMVCパッケージを使い始めて以来、まっすぐにphp、asp、またはJSPページに戻ったことは一度もありません。

+0

良い!答えをありがとう! – wallybh

関連する問題