Bonjour,

Je suis nouveau sur ce forum.

Je débute avec le MVC.

J'ai besoin de votre aide.

J'affiche dans une liste déroulante multi-sélection l’ensemble des produits d'un utilisateur connecté.

L'utilisateur saisi une date et valide un formulaire.

Dans mon controler la valeur de mon model est toujours "NOTHING"

Code : 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 
Public Class ProduitViewModel
    <Display(Name:="Produit")> _
    Property OrgList = New List(Of ProdDataModel)
 
 
    <Required> _
    Public Property SelectedValueProd() As String()
        Get
            Return p_SelectedValueProd
        End Get
        Set(value As String())
            p_SelectedValueProd = value
        End Set
    End Property
    Private p_SelectedValueProd As String()
    <Required> _
     <Display(Name:="Organisme")> _
    Public ReadOnly Property listOrg() As IEnumerable(Of SelectListItem)
        Get
            Return New MultiSelectList(OrgList, "ValueProd", "TextProd")
        End Get
    End Property
    Private p_listOrg As IEnumerable(Of MultiSelectList)
End Class
 
 
Public Class ProdDataModel
 
    Public Property ValueProd As String
        Get
            Return p_ValueProd
        End Get
        Set(value As String)
            p_ValueProd = value
        End Set
    End Property
 
    Private p_ValueProd As String
 
    Public Property TextProd As String
        Get
            Return p_TextProd
        End Get
        Set(value As String)
            p_TextProd = value
        End Set
    End Property
 
    Private p_TextProd As String
 
    Public Sub New(valueProd As String, textProd As String)
        p_ValueProd = valueProd
        p_TextProd = textProd
    End Sub
 
 
End Class
 
 
Public Class ValidationViewModel
    <Required(ErrorMessage:="La date est obligatoire")> _
    <Display(Name:="Date ")> _
    Public Property DateValidation() As String
        Get
            Return p_DateValidation
        End Get
        Set(value As String)
            p_DateValidation = value
        End Set
    End Property
    Private p_DateValidation As String
 
End Class
Public Class ValidationDataModel
    Public Validation As ValidationViewModel
    Public Property prod() As ProduitViewModel
End Class
Le controler
model.Validation.DateValidation est toujours null
Code : 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
 
 
'Validation des données:
 
 Function Index(model As ValidationDataModel) As ActionResult
        Dim t As Integer = CInt(model.Validation.DateValidation)
        Return View(model)
    End Function
 
 
'Remplir la liste déroulante Produits
 
 Function ProdView() As ActionResult
        Dim loginViewModel As LoginViewModel = New LoginViewModel()
        Dim listProd As New ProduitViewModel
        Dim listProdUser As List(Of ProdDataModel) = loginViewModel.ListeProduit
 
        For Each prod As ProdDataModel In listProdUser
            listProd.OrgList.add(prod)
        Next
        Return View(listProd)
    End Function
View

Code : 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
 
@ModelType ValidationDataModel
@Code
    ViewData("Title") = "ValidationProd"
End Code
<link href="~/Content/bootstrap.css" rel="stylesheet" />
<link href="~/Content/bootstrap-multiselect.css" rel="stylesheet" />
 
@Styles.Render("~/Content/css")
@Styles.Render("~/Content/themes/base/css")
 
 
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryui")
<h2></h2>
 
<div class="row">
    <div class="col-md-8">
        <section id="TraitementForm">
            @Using (Html.BeginForm())
                @<text>
                    @Html.ValidationSummary(True)
                    <div class="form-group">
                        @Html.LabelFor(Function(model) model.validation.DateValidation, New With {.class = "control-label col-md-2"})
                        <div class="col-md-10">
                            @Html.TextBoxFor(Function(model) model.validation.DateValidation, New With {.class = "form-control date-picker", .placeholder = "Choisir une date"})
                            @Html.ValidationMessageFor(Function(model) model.validation.DateArrete)
                        </div>
                    </div>
 
                    <div class="form-group">
                        @Html.LabelFor(Function(model) model.Prod.ProdList, New With {.class = "control-label col-md-2"})
                        <div class="col-md-10">
                            @Html.Action("ProdView")
                        </div>
                    </div>
 
                    <div class="form-group">
                        <div class="col-md-offset-2 col-md-10">
                            <input type="submit" value="Validation" class="btn btn-default" />
                        </div>
                    </div>
                </text>
            End Using
        </section>
    </div>
 
</div>
 
@ModelType ProduitViewModel
@Code
    ViewData("Title") = "ProduitView"
End Code
 
 
@Html.DropDownListFor(Function(model) model.listProduit, TryCast(Model.ProduitList, MultiSelectList), New With {.class = "form-control", .multiple = "multiple", .placeholder = "Choisir", .id = "Produit"})