Ich weiß, dass dies ein Problem für andere war, aber ich habe noch nichts gefunden, das mein Problem löst.
Ich habe eine teilweise Ansicht, die in einem Lightbox (Colorbox) angezeigt wird. Es handelt sich um ein einfaches Formular. Ich möchte, dass das Formular übermittelt wird und ein wenig Daten zurückgibt. Die Daten werden für den Aufruf nachfolgender Funktionen verwendet, und ich möchte einfach, dass das Haupt-DIV mit einer "Erfolgsmeldung" aktualisiert wird. Hier ist der vollständige Code der Teilansicht:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
$('propcatform').submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: $(this).attr("action"),
data: $(this).serialize(),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(data) { document.getElementById('main1').innerHTML = "Erfolg"; },
failure: function() { document.getElementById('main1').innerHTML = "Fehler"; }
})
});
<% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "propcatform", name = "propcatform" }))
{%>
Felder
Kategorie-Titel:
<%= Html.TextBox("CatTitle") %>
<%= Html.ValidationMessage("CatTitle", "*") %>
<% } %>
Hier ist mein Controller-Code. Der Code funktioniert, in dem er die Formulardaten erfolgreich zur Tabelle/Datenbank hinzufügt. Wie sollte meine "return"-Zeile aussehen?
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult Create(Category propcat)
{
Category resultcat = new Category();
_db.Categories.InsertOnSubmit(propcat);
_db.SubmitChanges();
resultcat = propcat;
return Json(new { CatID = resultcat.CatID, CatTitle = resultcat.CatTitle, message = "Kategorie erfolgreich erstellt!" });
}
Aktuell verwende ich tatsächlich keine der Ergebnisdaten in meinem Partial View-Code (obwohl ich sie in meinem "success"-Parameter referenziere). Ich versuche nur, dass es funktioniert (und mich nicht auffordert, die Ergebnisse zu speichern).
Danke.