asp.net MVC MODEL CONTROLER
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:
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:
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:
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"}) |