55 votes

Meilleures pratiques pour débogage ASP.NET MVC Binding

Pouvez-vous me donner des général des conseils sur la façon de déboguer ASP.NET MVC de Liaison?

Quand tout fonctionne comme exprected ASP.NET MVC est grande. Mais si quelque chose n'est pas, comme quelque chose de ne pas se lier pour une raison inconnue, j'ai du mal à identifier le problème et de trouver moi des dépenses de l'heure à la poursuite d'un problème apparemment simple.

Nous allons d'imagerie vous débarquez dans un contrôleur de méthode comme ceci:

[HttpPost]
public ActionResult ShipmentDetails(Order order)
{
    //do stuff
}

Nous allons plus loin de l'image que la classe de Commande ressemble à ceci:

public class Order
{
    public decimal Total {get; set;}
    public Customer Customer {get; set;}
}

public class Customer
{
    public string Name {get; set;}
    public string Phone {get; set;}
}

Ce sont bien placés pour commencer lors de la commande dans la méthode de contrôleur n'est pas lié correctement? Quels sont les bons endroits pour commencer lorsque des parties seulement de l'ordre sont tenus correctement?

26voto

Kaleb Pederson Points 22428

Bien que @russ réponse est utile et parfois nécessaire, les deux options semblent un peu faible niveau lorsque la question principale est de plus sur la grande image. Donc, je vous recommande d' Aperçu.

De son sur la page:

... Aperçu vous permet de corriger votre site web ou d'un service dans le navigateur. Aperçu vous permet de "Aperçu" dans ce qui se passe dans votre serveur web. En d'autres termes ce Firebug est pour le débogage de votre côté client code, coup d'œil est pour le débogage de votre serveur dans le client.

Et depuis que vous avez spécifiquement demandé à propos de la liaison de données, vous aurez envie de regarder à la liaison de l'onglet documentation. Vous serez en mesure de voir, à nouveau à partir de la documentation:

  1. Ordinal: l'Ordre dans lequel le Modèle MVC infrastructure de Liaison de la tentative de lier les données disponibles
  2. Modèle de Classeur: Classeur Modèle qui a été utilisé dans un scénario donné
  3. Propriété/Paramètre: le Nom de la chose que le Classeur a été d'essayer de se lier
  4. Type: Type de la chose que le Classeur a été d'essayer de se lier
  5. Tentative de Valeur des Fournisseurs: les Fournisseurs que le Liant tenté d'utiliser pour obtenir une valeur donnée (et si elle a réussi)
  6. Tentative de Valeur: La valeur réelle que le fournisseur a au travail (type de poste de conversation, etc.)
  7. Culture: La culture qui a été utilisée pour analyser la valeur brute La Valeur brute: La valeur brute que le fournisseur doit travailler avec des (pré type de conversation, etc.)

Voir le démarrage rapide. Brièvement:

  1. Installez le coup d'œil.mvc3 paquet
  2. Aller à l' http://yourhost/yourapp/Glimpse.axd et "l'activer."
  3. Cliquez sur l'aperçu de l'icône en bas à droite de n'importe quelle vue de votre application pour plus de détails.

22voto

Russ Cam Points 58168

Comme Darin a suggéré, à commencer par inspecter ce qui est envoyé à partir du client vers le serveur en utilisant quelque chose comme Firebug, un violon, ou d'autres web debugging proxy outil.

A défaut, vous pourriez étape à travers le code source pour voir ce qui se passe lors de l'affectation.

Deux façons que je peux vous recommander de le faire sont

  1. Inclure le Système.Web.Mvc code source du projet dans votre application et de faire référence à ce. C'est bon pour l'apprentissage, mais probablement pas recommandé pour une commerical application.

  2. Téléchargez les symboles pour le Système.Web.Mvc, à partir de la Microsoft serveurs de symboles, modifier vos paramètres afin d'être en mesure de cadre de débogage de code source et de définir un point de rupture de manière appropriée à l'étape à travers.

3voto

Darin Dimitrov Points 528142

Un bon endroit pour commencer est de télécharger et d'installer FireBug et voir ce qui est posté du client sur le serveur. Ensuite, vous verrez ce qui manque, incorrect, ... Les messages de blog tels que la liaison de modèle à une liste sont de bonnes lectures aussi bien pour se familiariser avec la syntaxe appropriée que le liant de modèle par défaut emploie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X