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"
Le controler
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
model.Validation.DateValidation est toujours null
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 '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
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"})
Partager