Je sais que cela a été un problème pour d'autres, mais je n'ai pas encore trouvé quelque chose qui résout mon problème.Les résultats de JSON invitant la boîte de dialogue "Enregistrer sous" dans le navigateur au lieu d'être traités. ASP.NET MVC
J'ai une vue partielle qui est affichée dans une visionneuse (colorbox). C'est une forme simple. Je veux que le formulaire soumette et renvoie un peu de données. Les données seront utilisées pour appeler les fonctions suivantes, et je veux que la DIV principale soit juste mise à jour avec un message "succès". Voici le code complet de la vue partielle:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Solution2.Models.Category>" %>
<script type="text/javascript">
$('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 = "Success"; },
failure: function() { document.getElementById('main1').innerHTML = "Failure"; }
})
});
</script>
<% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "propcatform", name = "propcatform" }))
{%>
<div id="main1">
<fieldset>
<legend>Fields</legend>
<p>
<label for="CatTitle">Category Title:</label>
<%= Html.TextBox("CatTitle") %>
<%= Html.ValidationMessage("CatTitle", "*") %>
</p>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
</div>
<% } %>
Voici mon code de contrôleur. Le code fonctionne, en ce qu'il ajoute avec succès les données de formulaire à la table/base de données. À quoi devrait ressembler ma ligne "retour"?
[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 = "Category successfully created!" });
}
Actuellement, je ne suis pas utiliser aucun des données de résultat dans mon code de vue partielle (même si je référencent dans mon paramètre « succès »). J'essaie juste de le faire fonctionner (et ne pas m'inciter à enregistrer les résultats).
Merci.
Merci. Quelle est votre suggestion pour gérer au mieux ce que je veux faire, c'est-à-dire afficher et traiter un formulaire simple dans une palette de couleurs? Je suis assez nouveau pour tout ça. – johnnycakes
La mise à jour était le correctif. –