jQuery Datatable avec MVC 5 et Entity Framework
J'ai besoin de quelques conseils sur ce qu'il faut mettre dans mon contrôleur afin que je puisse utiliser de traitement côté serveur avec mon jQuery datatables. Je suis en utilisant MVC 5 et Entity Framework.
L'exemple: http://datatablesmvc.codeplex.com/documentation les états suivants:
public class HomeController : Controller {
[HttpPost]
public ActionResult GetDataTables(DataTable dataTable) {
List<List<string>> table = new List<List<string>>();
//Do something with dataTable and fill table
return new DataTableResult(dataTable, table.Count, table.Count, table);
}
}
Mais que dois-je faire lorsque je suis à l'aide de LINQ comme cela?
public ActionResult Index()
{
var activity = db.Activity.Include(a => a.ActivityType);
return View(activity.ToList());
}
OriginalL'auteur Kode | 2014-03-17
Vous devez vous connecter pour publier un commentaire.
------------------------------- Mise à jour de réponse -------------------------------
Pourquoi la mise à jour?
Cette réponse semble continuer à recevoir beaucoup d'attention, de SORTE que les utilisateurs et je pensais que tout le monde pourrait bénéficier d'une "petite" mise à jour.
Ce qui a changé?
DataTables.Mvc
a commencé plus d'un an. Il a changé et il est maintenant appeléDataTables.AspNet
. Mais ce n'est pas tout.À l'époque, le but était d'aider avec les classes de base. Le problème, c'est que vous vous souhaitez simplement obtenir un zip et devrait fusionner manuellement tout ce qui dans votre projet. Aussi, il n'y a pas de liant pour les modèles, et l'intégration est vraiment ennuyeux.
Maintenant, nous avons une architecture modulaire avec Nuget packages à l'aide. Vous pouvez soit la référence
Core
paquet et tout mettre en œuvre vous-même ou vous pouvez obtenir des paquets respectifs (Mvc5
ouAspNet
;WebApi2
est à venir bientôt) avec des classeurs de modèle, d'une ligne à l'enregistrement et à la suite de tests complète.Comment commencer?
Découvrez
samples
dossier surdev
branche (cliquez ici).N'oubliez pas d'obtenir les packages Nuget. Vous pouvez trouver une liste de ces ici.
------------------------------- Réponse originale à cette question -------------------------------
Tout d'abord
Vous pouvez soit utiliser les tables de données 1.9, 1.10 avec l'ancienne API ou 1.10 avec la nouvelle API.
Si vous choisissez la nouvelle API (1.10 seulement) que vous allez manquer certains plugins ici et là, mais vous pouvez utiliser DataTables.AspNet sur GitHub pour aider avec les liaisons.
Si non, vous pouvez prendre un coup d'oeil et de modifier le code correspondant à la demande des variables à partir d'autres versions (appui sera fourni plus tard sur mon projet).
La real-deal
Point est que vous aurez à gérer trois éléments:
Donne-moi un peu de code!
Qui pourrait changer à partir de la version et si vous êtes en utilisant (ou pas) de ma classe binding. Considérez que vous êtes en utilisant, par souci d'éviter la manipulation des paramètres de la requête ici, ok?
Ainsi, vous pouvez jouer avec quelque chose comme ceci:
Désolé, pas encore. Je vais travailler sur ça aujourd'hui/demain et de le rendre disponible bientôt. Toutefois, devrait être assez simple: créer une sorte de helper/extension de recevoir des colonnes de collecte et de retourner une chaîne de caractères, soit avec filtre ou de tri et de passer à une Dynamique de Linq.
Juste joué un peu avec elle un peu plus et je ne pense pas qu'il va travailler avec l'approche que je vais prendre le IModelBinder interface ne fonctionne pas avec les ApiControllers. Je ne suppose pas que vous avez une suggestion pour une alternative/patch?
Bon pense que pour le fournisseur ici plutôt que de seprate projet
OriginalL'auteur Anderson Matos