Ich arbeite um E-Commerce-Wagen. Ich habe zwei Ansichtsmodelle.Pass zwei Viewmodels zu Aktion
Zuerst für Kunden Info:
public class CartViewModel
{
public string FirstName{get;set;}
public string Email{get;set;}
//... other fields
}
Und zweitens für Kunden Warenkorb:
public class ProductsCart
{
public Guid Id { get; set; }
public decimal Price { get; set; }
public int ItemsOrdered { get; set; }
}
Die Hauptsache ist, dass Wagen in Benutzer local Speicherung und ich sollte es von localstorage mit Kunden Informationen gelangen über jQuery zu MVC `s Aktion:
[HttpPost]
public ActionResult ConfirmOrder(CartViewModel model, IEnumerable<ProductsCart> cart)
{
// validate and save to database
}
Und ich habe Javascript-Methode zu se nd Daten zu meiner Aktion:
function ConfirmOrder() {
var serverCart = LocalCartToSercerCart(); //see first screnshot
var customerData = $("#FORM_WITH_CUSTOMERS_VIEW_MODEL").serialize();
$.ajax({
method: "POST",
url: "/Cart/ConfirmOrder",
data: {model: customerData, cart: serverCart }
})
.done(function() {
//do something
});
}
Aber ich immer null-Wert immer für meinen CartViewModel (Screenshot 2)
Ich legte auch Dateien mit meinen Debug-Informationen.
Wenn ich schreibe Javascript-Funktion wie folgt aus:
function ConfirmOrder() {
var customerData = $("#cartForm").serialize();
$.ajax({
method: "POST",
url: "/Cart/ConfirmOrder",
data: customerData
})
.done(function() {
//some code
});
}
ich nur Modelldaten (siehe Abbildung 3)
bekommenEDIT: mit Ich schrieb Code Igor`s Antwort, aber immer noch null immer in Aktion Parameter
oder er benutzen konnte [Tupeln] (https://nitinasp.wordpress.com/2014/02/03/tuples-in-mvc/) – Manoj
I versucht, wie Sie geschrieben, aber immer noch Null (hier Bildschirm meines Jobs) https://drive.google.com/open?id=0B-dajRUS_6ynQUFLakQ3RTJ5NFU – dantey89
@ Dantey89 - nicht sicher, was Sie senden, aber ich im Allgemeinen nicht folgen externen Links (sicheres Surfen und alles). Wenn Sie zusätzliche Fragen oder ein Update haben, bitte aktualisieren Sie Ihre Frage mit diesen Details, ich werde mehr als glücklich sein, auf diese Weise zu antworten. Wenn es nur eine Frage ist, kannst du das auch in einem Kommentar posten (am selben Ort, an dem du gerade diesen Link gepostet hast). – Igor