Ich brauche dieses Objekt aus der Sicht auf die Steuerung zu übergeben:Pass-Objekt aus dem Blickfeld an dem Steuergerät 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...
}
Wenn I-Wert in der Steuerung gesetzt, werden sie zu der Ansicht geführt; aber wenn ich Werte in der Ansicht setze oder ändere und sie zurück gebe ... es kommt dorthin, aber die Werte sind null.
Ich verwende dieses 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"
}
))
meine Eigenschaften sind als solche in der Form gebunden:
@Html.TextBoxFor(Function(model) model.QuoteVehicle.Make, New With {.class = "form-control", .readonly = "readonly"})
und in meinem Controller:
Function GetQuote(QuoteVehicle As String) As ActionResult
Dim _quoteVehicle = JsonConvert.DeserializeObject(Of QuoteVehicle)(QuoteVehicle)
Return View(etc.)
End Function
I habe auch versucht <HttpPost>
und .HttpMenthod = "POST"
, aber das hat auch nicht funktioniert.
Liebe zu wissen, warum sind sie nicht gesetzt werden ...
Das Modell sieht wie folgt aus:
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
Eigenschaften, die nicht in einem Objekt, sondern nur Typen (dh Boolean ?, String) bind bind, aber Eigenschaften innerhalb des Objekts nicht.
Warum genau posten Sie wollen das gleiche Objekt, das Sie gerade vom Server gesendet haben? –
Warum sollte ich nicht? Das Objekt befindet sich im Modell ... Ich muss dieses Objekt mit den Daten aus der Ansicht füllen - wie sonst würde ich diese Information weitergeben? 20 getrennte Felder? –
Ich glaube nicht, dass Sie es verstehen - Ihr Modell auf dem Server serialisieren, es an den Client senden und genau das gleiche Modell zurücksenden, nichts, was bearbeitet wurde. Entfernen Sie den dritten Parameter von 'BeginForm()' und ändern Sie den Methodenparameter zu Ihrem Modell, nicht zu einem 'String' –