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 :

Remplacer une clé étrangère par la valeur correspondant dans la table où elle est clé primaire


Sujet :

ASP.NET MVC

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Points : 120
    Points
    120
    Par défaut Remplacer une clé étrangère par la valeur correspondant dans la table où elle est clé primaire
    Bonjour.
    Je suis développeur web expérimenté mais nouveau dans l'architecture MVC

    J'ai une table "Utilisateurs" et "Directions" dont les modèles sont

    UtilisateurModele:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Imports System.Data.Entity
    Public Class Utilisateur
        Public Property Id As Integer
        Public Property DirectionId As Integer
        Public Property Departement As String
        Public Property Service As String
        Public Property Matricule As String
        Public Property Nom As String
        Public Property Prenom As String
        Public Property Poste As String
        Public Property Tel As String
        Public Property Email As String
     
        Public ReadOnly Property FullName As String
            Get
                Return Nom & " " + Prenom
            End Get
        End Property
    End Class

    DirectionModele:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Imports System.Data.Entity
    Public Class Direction
        Public Property Id As Integer
        Public Property Valeur As String
        Public Property Supprime As Boolean
    End Class

    ClassGnl:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Imports System.Data.Entity
    Public Class HI_CNX
        Inherits DbContext
        Public Property Utilisateurs() As DbSet(Of Utilisateur)
        Public Property Directions() As DbSet(Of Direction)
    End Class

    Dans le controller, j'ai

    UtilisateursController:

    Code CSHTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    @ModelType IEnumerable(Of ANNUAIRE.Utilisateur)
     
    @Code
    ViewData("Title") = "Index"
    Layout = "~/Views/Shared/_Layout.vbhtml"
    End Code
     
    <h2>Index</h2>
     
    <p>
        @Html.ActionLink("Create New", "Create")
    </p>
    <table class="table">
        <tr>
            <th>
                @*@Html.DisplayNameFor(Function(model) model.FullName)*@
                Nom et prénom(s)
            </th>
            <th>
                @*@Html.DisplayNameFor(Function(model) model.DirectionId)*@
                Direction
            </th>
            <th>
                @*@Html.DisplayNameFor(Function(model) model.Poste)*@
                Poste
            </th>
            <th>
                @*@Html.DisplayNameFor(Function(model) model.Tel)*@
                Tél.
            </th>
            <th>
                @*@Html.DisplayNameFor(Function(model) model.Email)*@
                Email
            </th>
            <th></th>
        </tr>
     
    @For Each item In Model
        @<tr>
        <td>
            @Html.DisplayFor(Function(modelItem) item.FullName)
        </td>
        <td>
            @Html.DisplayFor(Function(modelItem) item.DirectionId)
        </td>
        <td>
            @Html.DisplayFor(Function(modelItem) item.Poste)
        </td>
        <td>
            @Html.DisplayFor(Function(modelItem) item.Tel)
        </td>
        <td>
            @Html.DisplayFor(Function(modelItem) item.Email)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", New With {.id = item.Id}) |
            @*@Html.ActionLink("Details", "Details", New With {.id = item.Id}) |*@
            @Html.ActionLink("Delete", "Delete", New With {.id = item.Id})
        </td>
    </tr>
    Next
     
    </table>

    Ma préoccupation est de remplacer
    Citation Envoyé par CSHTML
    @Html.DisplayFor(Function(modelItem) item.DirectionId)
    par la valeur de la direction correspondant à la "DirectionId"

    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Points : 120
    Points
    120
    Par défaut
    Dans UtilisateursController:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Function Index() As ActionResult
                Dim sql As String = "SELECT R1.*,R2.Valeur as Direction FROM Utilisateurs as R1 inner join DIrections as R2 on R1.DirectionId=R2.Id"
                Dim model = New List(Of Utilisateur)()
     
                Using conn As SqlConnection = New SqlConnection
                    conn.ConnectionString = ConfigurationManager.ConnectionStrings("HI_CNX").ToString
                    conn.Open()
                    Dim cmd As SqlCommand = New SqlCommand(sql, conn)
                    Dim rdr As SqlDataReader = cmd.ExecuteReader()
     
                    While rdr.Read()
                        Dim Util = New Utilisateur()
     
                        With Util
                            .NomPrenom = rdr("NomPrenom").ToString()
                            .Direction = (rdr("Direction").ToString())
                            .Poste = (rdr("Poste").ToString())
                            .Tel = (rdr("Tel").ToString())
                            .Email = (rdr("Email").ToString())
                        End With
     
                        model.Add(Util)
                    End While
                End Using
     
                Return View(model)
            End Function

    Cela nécessite d'ajouter dans le modèle de Utilisateur, les propriétés "NomPrenom" et "Direction"

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Imports System.Data.Entity
    Imports System.Collections.Generic
    Imports System.ComponentModel.DataAnnotations
    Imports System.ComponentModel.DataAnnotations.Schema
     
    Public Class Utilisateur
        Public Property Id As Integer
        Public Property DirectionId As Integer
        Public Property Departement As String
        Public Property Service As String
        Public Property Matricule As String
        Public Property Nom As String
        Public Property Prenom As String
        Public Property Batiment As String
        Public Property Porte As String
        Public Property Poste As String
        Public Property Tel As String
        Public Property Email As String
        Public Property Grade As String
        Public Property ExtFichier As String
        Public Property PosteTravail As String
        Public Property NomUtilisateur As String
        Public Property MotDePasse As String
        Public Property Initialise As Boolean
        Public Property Profil As String
        Public Property Supprime As Boolean
        Public Property Direction As String
        Public Property NomPrenom As String
    End Class

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 29
    Points : 35
    Points
    35
    Par défaut
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/09/2014, 16h29
  2. [XL-2013] Remplacer une cellule vide par une valeur
    Par Tiagra dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/09/2014, 20h45
  3. Réponses: 1
    Dernier message: 13/01/2014, 09h30
  4. Réponses: 8
    Dernier message: 15/11/2008, 23h14
  5. Remplacer une colonne par ses numéros correspondants dans une liste
    Par freestyler dans le forum Shell et commandes GNU
    Réponses: 27
    Dernier message: 12/06/2008, 15h42

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