IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

Problème d'affichage + exception


Sujet :

ASP.NET MVC

  1. #1
    Candidat au Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : août 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Problème d'affichage + exception
    Bonjour,
    SVP j'ai un problème d'affichage, quand j'exécute j'obtient l'erreur suivante
    {"The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[Apoline.Entities.Models.ParamFormat]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[Apoline.Web.Models.ParamFormat]'."}
    Le nom du projet est Apoline
    dans Apoline.Web.Views j'ai :
    le fichier index.chtml:

    @model IEnumerable<Apoline.Web.Models.ParamFormat>
    @using (Html.BeginForm())
    {
    <p>
    Find by name: @Html.TextBox("SearchString", ViewBag.CurrentFilter as string) &nbsp;
    <input type="submit" value="Search" /></p>
    }
    <table>
    <tr>
    <th></th>
    <th>
    @Html.ActionLink("Libellé", "Index", new { sortOrder=ViewBag.NameSortParm, currentFilter=ViewBag.CurrentFilter })
    </th>
    <th>
    @Html.ActionLink("Valeur", "Index", new { sortOrder=ViewBag.NameSortParm, currentFilter=ViewBag.CurrentFilter })
    </th>

    </tr>



    @foreach (var item in Model) {

    <tr>
    <td>
    @Html.ActionLink("Edit", "Edit", new { id=item.ForID}) |

    </td>
    <td>
    @Html.DisplayFor(modelItem => item.ForLibLong)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.ForVal)
    </td>

    </tr>
    }

    </table>

    dans Apoline.BL j'ai le fichier ParamFormatService:

    ApolineContext ctxApoline = new ApolineContext();
    public List<ParamFormat> GetAllParamFormats()
    {
    try
    {

    var formats = ctxApoline.ParamFormat.ToList();
    return formats;

    }
    catch (Exception e)
    {
    this.LogError("Error getting formats List", e);
    return null;
    }
    }

    Dans Apoline.Web.controllers j'ai le fichier ParamFormatController:

    public class ParamFormatController : BaseController
    {


    public ViewResult Index()
    {
    ParamFormatService srv = new ParamFormatService();

    List<ParamFormat> formats = srv.GetAllParamFormats();



    return View(formats.ToList());
    }


    dans Apoline.web.models j'ai le fichier ParamFormat.cs

    public class ParamFormat
    {
    public int ForID { get; set; }

    [Column("ForDateCre")]
    [Display(Name = "date de création")]
    public DateTime ForDateCre { get; set; }

    [Column("ForVal")]
    [Display(Name = "user de création")]
    public string ForVal{ get; set; }

    [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
    [Column("ForDateModif")]
    [Display(Name = "date de modification")]
    public DateTime ForDateModif { get; set; }


    [Column("ForUserModif")]
    [Display(Name = "user de modification")]
    public string ForUserModif { get; set; }

    [Column("ForLibLong")]
    [Display(Name = "Libellé")]
    public string ForLibLong { get; set; }



    en attente de votre aide, je vous remercie énormement.

  2. #2
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    bonjour,

    Dans votre vue vous avez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @model IEnumerable<Apoline.Web.Models.ParamFormat>
    et votre fonction retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public List<ParamFormat> GetAllParamFormats()
    Vous devez changer l'un ou l'autre

    PS : il existe des balises [CODE] pour la mise en forme

  3. #3
    Candidat au Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : août 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    j'ai changé le type Ienumerator en List, ça me donne mnt cette erreur:
    The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[Apoline.Entities.Models.ParamFormat]', but this dictionary requires a model item of type 'System.Collections.Generic.List`1[Apoline.Web.Models.ParamFormat]'.

  4. #4
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Apoline.Web.Models.ParamFormat != Apoline.Entities.Models.ParamFormat

  5. #5
    Candidat au Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : août 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup pour votre aide,
    svp je reçois le message d'erreur suivante au moment oû je veux sauvgarder des données dans la BD
    Une erreur s'est produite lors de la mise à jour des entrées. Pour plus d'informations, consultez l'exception interne.

  6. #6
    Candidat au Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : août 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup pour votre aide,
    svp je reçois le message d'erreur suivante au moment oû je veux sauvgarder des données dans la BD
    Une erreur s'est produite lors de la mise à jour des entrées. Pour plus d'informations, consultez l'exception interne.

  7. #7
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Pour plus d'informations, consultez l'exception interne
    Bon... lorsque le debogger s’arrête sur l'exception (je pars du principe que vous êtes en mode debug), vous avez accès aux détails de l'exception. parmi ces détails vous avez innerException. A l'intérieur de cet attribut vous aurez le vrai message d'erreur

  8. #8
    Candidat au Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : août 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    j'ai un problème de ModelState, il est tjrs False:

    [HttpPost]


    public ActionResult Edit(ParamFormat format)
    {

    try
    {
    if (ModelState.IsValid)
    {
    formatRepository.UpdateFormat(format);
    formatRepository.Save();
    return RedirectToAction("Index");

    }
    }
    catch (DataException )
    {
    //Log the error (add a variable name after DataException)
    ModelState.AddModelError("", "erreur lors de la modification");
    }
    return View(format);
    }


  9. #9
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Si je me rappelle bien, vous devriez voir les champs qui ne sont pas valides avec votre débuggeur, en vous arrêtant sur la ligne :
    "if (ModelState.IsValid)"

  10. #10
    Candidat au Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : août 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour, merci bcp pour votre aide permanant.

    J'ai un problème de l'affichage d'une liste déroulante:

    Je veux afficher dans un formulaire une liste déroulante d'une clé étrangère, cette dernière éxiste dans la table Entité. et ma table avec laquelle je travaille c Format

    dans la page create.chtml j'ai les intructions suivantes:
    <div class="editor-label">
    @Html.LabelFor(m =>m.ForEntID, "clé étrangère")
    </div>
    <div class="editor-field">
    @Html.DropDownList("ForEntId", String.Empty)
    @Html.ValidationMessageFor(m => m.ForEntID)
    </div>



    Dans le controlleur j'ai la méthode suivante:
    public ActionResult Create()
    {[

    ViewBag.ForEntID = new SelectList(context.Entite, "EntID");
    return View();
    }



    ps: la clé primaire de la table Entité est "EntID" et la clé étrangère dans la table Format est "ForEntID"


    L'erreur que j'obtiens est: La référence d'objet n'est pas définie à une instance d'un objet.

  11. #11
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Alors tout d'abord, il existe des balises "[CODE]" (signe #) qui permettent de mieux présenter le code dans les messages du forum.

    D'autre part, ici, tu trouveras un tuto pour l'utilisation du debuggeur de Visual Studio

    Enfin je me demande si il n'y a pas une confusion entre le "viewbag" et le "model" qui sont tous les deux envoyés à la vue.


    Edit :
    L'erreur que j'obtiens est: La référence d'objet n'est pas définie à une instance d'un objet.
    Ici les fondamentaux, çà fait jamais de mal

Discussions similaires

  1. [Débutant] Problème affichage exception
    Par arngrimur dans le forum C#
    Réponses: 6
    Dernier message: 05/09/2011, 16h00
  2. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 17h59
  3. [Kylix] problème d'affichage
    Par scalvi dans le forum EDI
    Réponses: 1
    Dernier message: 18/06/2003, 11h07
  4. Réponses: 1
    Dernier message: 06/03/2003, 12h57
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo