Je dois passer cet objet de la vue sur le contrôleur:objet passe de la vue vers le contrôleur MVC 5
public class QuoteVehicle
{
[DisplayName("Quote Vehicle ID")]
public int QuoteVehicleID { get; set; }
[DisplayName("Quote ID")]
public int QuoteID { get; set; }
[DisplayName("Model Year")]
public string ModelYear { get; set; }
//etc...
}
Si je définir des valeurs dans le contrôleur, ils sont passés à la vue; mais si je mets ou change des valeurs dans la vue et les renvoie ... il y arrive, mais les valeurs sont nulles.
J'utilise ce Ajax.BeginForm:
@Using (Ajax.BeginForm("GetQuote", "Quote",
New With {.QuoteVehicle = JsonConvert.SerializeObject(Model.QuoteVehicle)},
New AjaxOptions() With {
.UpdateTargetId = "PriceOptionsPanel",
.HttpMethod = "GET",
.OnComplete = "SetDatePickers",
.InsertionMode = InsertionMode.Replace,
.LoadingElementId = "loader"
}
))
mes propriétés sont liées en tant que telle dans la forme:
@Html.TextBoxFor(Function(model) model.QuoteVehicle.Make, New With {.class = "form-control", .readonly = "readonly"})
et dans mon contrôleur:
Function GetQuote(QuoteVehicle As String) As ActionResult
Dim _quoteVehicle = JsonConvert.DeserializeObject(Of QuoteVehicle)(QuoteVehicle)
Return View(etc.)
End Function
I J'ai aussi essayé <HttpPost>
et .HttpMenthod = "POST"
, mais cela n'a pas fonctionné non plus.
aiment savoir pourquoi ils ne sont pas ... être mis
Le modèle ressemble à ceci:
Public Class MenuOptionsModel
Public Property VIN() As String
Public Property QuoteVehicle() As QuoteVehicle
Public Property IsDecoded As Boolean
Public Property IsNew As Boolean = False
Public Property Is30Day As Boolean?
Public Property IsUnderWarranty As Boolean?
etc...
End Class
propriétés qui ne sont pas un objet, mais seulement les types (c.-à-booléenne ?, String) se lient bien, mais pas les propriétés dans l'objet.
Pourquoi vous vouloir republier exactement le même objet que vous venez d'envoyer du serveur? –
Pourquoi pas moi? L'objet est dans le modèle ... J'ai besoin de remplir cet objet avec les données de la vue - comment pourrais-je transmettre cette information? 20 champs séparés? –
Je ne pense pas que vous comprenez - votre sérialisation du modèle sur le serveur, l'envoi au client, et le renvoi exactement le même modèle, pas tout ce qui a été édité. Supprimer votre 3ème paramètre de 'BeginForm()' et changer le paramètre de la méthode pour être votre modèle, pas un 'string' –