Ich verwende obigen Code, um ein Formular unter Verwendung von Daten in Model zu übermitteln. Das Problem ist, dass ich es tun möchte, nachdem die Seite geladen wurde und der Benutzer eine Auswahl trifft. Aber der Rasierklingen-Code rendert, bevor das Dokument fertig ist, und wenn ich auf diese Schaltfläche klicke, werden die Daten zu 0 Index des Modells in dieses Skript geladen. Kann ich das Modell in dieser Funktion trotzdem durchlaufen?Render Razor-Code in JS-Funktion, nachdem das Dokument geladen wurde
Antwort
Sie können JavaScript-Variablen nicht an eine Razor-Variable übergeben/konvertieren. Razor-Variable wird von Razor-Engine behandelt wo als JavaScript auf der anderen Seite ist eine Client-Seite Sprache auf dem Client ausgeführt wird.
Razor ist eine View-Engine, die vom ASP.NET MVC-Framework verwendet wird, das auf dem Server ausgeführt wird, um eine HTML-Vorlage zu erstellen.
Sie können jedoch verwenden Json.Encode Methode konvertiert ein Datenobjekt in eine Zeichenfolge, die im JavaScript-Objekt Notation (JSON) -Format ist. Dann führen Sie Ihre Operation mit ihm aus.
//Convert Model to JSON
var model = @Html.Raw(Json.Encode(Model));
$("body").on("click", "#ActionButton", function (e) {
//set current select index
currentBook = $(this).attr("data-bookId");
//set title
$("#BookAction .modal-title").text(model[currentBook].BookName);
//get list of current book forms
var currentFormsList = model[currentBook].FormList;
// collapse fill new data list if expanded
swap('FillNewData', true);
$("#FillNewData").empty();
for (int k = 0; k < currentFormsList.length; k++)
{
//Create link
$('<li />')
.addClass("SubmitForm list-group-item bg-grey-300")
.data('FormLink', currentFormsList[k].FormLink)
.data('FormHideExtraValue', currentFormsList[k].FormHideExtraValue)
.data('FormActionLink', model[currentBook].FormActionLink)
.html(currentFormsList[k].FormName)
.appendTo("#FillNewData");
}
});
$("#FillNewData").on('click', 'li.SubmitForm', function(){
SubmitForm(
$(this).data('FormLink'),
$(this).data('FormHideExtraValue'),
$(this).data('FormActionLink'),
)
})
Danke für die Antwort. Ich dachte daran, das gleiche zu tun, das Modell hat viele Bilder in Base64 und eine Menge Textdaten, Converting es in JSON ist eine gute Idee? die Natur des Modells im Blick behalten. –
Persönlich möchte ich keine Bilder in JSON-Daten persistieren, aber für Textdaten ist es in Ordnung. Eine andere Methode, die ich empfehlen würde, ist die Verwendung einer Teilansicht, die mit einer Aktion erstellt wurde – Satpal
- 1. Abrufen der Bildhöhe, nachdem das Bild geladen wurde
- 2. Fade In Div Nachdem andere Div geladen wurde
- 3. Zeile auswählen Nachdem UIPickerView geladen wurde
- 4. Javascript - So erkennen Sie, ob das Dokument geladen wurde (IE 7/Firefox 3)
- 5. jQuery - Suchen und ersetzen Text, nachdem Körper wurde geladen
- 6. jQuery funktioniert nicht, nachdem Inhalt über AJAX geladen wurde
- 7. Wie kann ich Jobs ausführen, nachdem der Anwendungskontext geladen wurde?
- 8. C# -Methode, die ausgeführt wird, nachdem die Assembly geladen wurde
- 9. Wie aktualisieren Sie die Daten in einem Mungo-Dokument, das bereits geladen wurde?
- 10. Ändern des Stammansicht-Controllers, nachdem die iOS-App geladen wurde.
- 11. CouchBase-Ausnahme. Das Dokument wurde mutiert
- 12. Angefügte Bilder anzeigen, nachdem die Seite neu geladen wurde
- 13. Jquery-Hover funktioniert nicht, nachdem Ajax-Inhalt geladen wurde
- 14. Wie kann ich meinen Fortschrittsdialog ablehnen, nachdem Webview geladen wurde?
- 15. Wählen Sie automatisch eine Filteroption, nachdem meine Seite geladen wurde
- 16. Rendern einer Marionettenregion, nachdem das Modell abgerufen wurde
- 17. button href nachdem das Formular gesendet wurde
- 18. Buddypress-Hook, nachdem das Bild hochgeladen wurde
- 19. Browserunabhängige Erkennung, wenn das Image geladen wurde
- 20. Fade in Bildern, nachdem sie geladen
- 21. Überprüfen, wann das Skript geladen wurde
- 22. Ist es möglich, den Kontext festzulegen, nachdem die Komponente in React geladen wurde?
- 23. Das Paket 'ApacheCordovaToolsPackage' wurde nicht korrekt geladen
- 24. Mach Sachen, wenn das Bild geladen wurde
- 25. MOSS: Genehmigungs-Workflow: Wie man das Dokument nur lesen kann, nachdem es genehmigt wurde
- 26. Xpages Wie wird der Standardwert auf ein leeres Feld gesetzt, nachdem das Dokument bereits gespeichert wurde?
- 27. C# -Aufnahmemethode, nachdem die Browsersteuerung beendet wurde?
- 28. Wie schließe ich ein Fenster, das ich geöffnet habe, nachdem es mit Javascript geladen wurde?
- 29. Wie löst ich ein Ladeereignis aus, nachdem das Fenster selbst geladen wurde?
- 30. Programm kann nicht geladen werden, nachdem das Bit setuid auf
Sie können die JavaScript-Variable nicht an den Server-Seitencode von Razor übergeben. – Satpal
@Satpal: Irgendeine Lösung für dieses Problem? –