2017-01-23 4 views
0

gemacht Ich habe eine Ansicht, die nicht mehr als mehrere hundert Textfelder ist, die alle aus einem Bündel TextBoxFor generiert werden. Das ursprüngliche Modell wird durch Deserialisieren eines JSON-Blobs (Zeichenfolge) gefüllt, das in der Datenbank gespeichert ist. Der Benutzer hat die Möglichkeit, einen (oder alle) der Werte zu ändern. Wenn Sie auf die Schaltfläche Speichern klicken, möchte ich einfach alle Textboxwerte in eine Json-Zeichenfolge zurückgeben und diese Zeichenfolge in der DB speichern.Get Json Zeichenfolge des Modells, mit allen Änderungen von Benutzer

Nach Ansicht ...

function SaveAll() { 
    var model = '@Html.Raw(Json.Encode(Model))'; 
    // Send the string to the server ... 
} 

Während das macht einen guten Job, das Modell des Nehmens in Bezug auf die Ansicht geliefert und machen eine JSON-String aus ihm heraus, es berücksichtigt keine Benutzer Änderungen an der Modell, nachdem es zur Ansicht geliefert wurde.

ich wirklich gehofft, es eine einfache Möglichkeit, alle aktuellen Textbox Werte und sie in eine JSON-String drehen zu bekommen, ohne einzeln alle hundert + von ihnen zu verweisen ist, und, natürlich, die die Struktur aufrecht zu erhalten das ursprüngliche Modell.

Hier ist eine Probe eines der Textfelder, nachdem sie in HTML gerendert wird:

<input 
    class="form-control input-sm" 
    id="LeadPricingModel_CampaignType_Exclusive" 
    name="LeadPricingModel.CampaignType.Exclusive" 
    value="25"> 

Der Name, LeadPricingModel.CampaignType.Exclusive, stellt die Struktur des Modells.

Antwort

0

Sie können Ihr C# -Modell nicht mit JavaScript bearbeiten. Ihr Modell wird vom Server gerendert. Nur einmal. Wenn Ihre Seite erstellt wurde. Um Daten von Ihrem Formular oder etc. zu senden, verwenden Sie JSON.stringify(object)

+0

"Sie können Ihr C# -Modell nicht von JavaScript manipulieren" Ja, natürlich. Und das versuche ich nicht. Ich möchte nur eine JSON-Zeichenfolge erhalten, die wie das Modell strukturiert ist, aber alle aktuellen Werte enthält. –