2010-05-10 4 views
0

J'ai le code suivant à mon avis:Comment lire les valeurs renvoyées par le Json?

<% using (Ajax.BeginForm("JsonCreate", new AjaxOptions { OnComplete = "createCategoryComplete" })) 


    { %><div id="createCategory"> 
     <fieldset> 
      <legend>Add new category</legend> 
      <p> 

<%=Html.TextBox("CategoryId")%> 
<%=Html.TextBox("Test")%> 
      <label for="name">Name:</label> 
      <%= Html.TextBox("Name")%> 
      <%= Html.ValidationMessage("Name")%> 

     </p> 
     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 
</div> 

Dans le contrôleur le code est le suivant:

[AcceptVerbs(HttpVerbs.Post)] 
    public JsonResult JsonCreate(string Name) 
    { 
     if (ModelState.IsValid) 
     { 
      try 
      { 


       //Return a json object to the javascript 
       return Json(new { CategoryId = 123, Test= "test successful" }); 
      } 
      catch 
      { 
       #region Log errors about the exception 
       //Log error to administrator here 
       #endregion 
      } 
     } 

     //If we got this far, something failed, return an empty json object 
     return Json(new { /* Empty object */ }); 
    } 

Quel devrait être le code dans la vue de la fonction suivante pour lire les valeurs renvoyées par le Json et mettre à jour les zones de texte pour CategoryId et Test?

function createCategoryComplete() {....???} 
+3

Vous avez réussi à obtenir> 100 réputation sur ce site, mais ne parvenez toujours pas à formater question correctement? – Tomalak

Répondre

0
function createCategoryComplete(e) { 
    var obj = e.get_object(); 
    alert(obj.CategoryId + ' ' + obj.Test); 
} 
+0

Il n'affiche pas l'alerte, me donnant plutôt une boîte de dialogue pour enregistrer les valeurs json – learning

+0

C'est probablement parce que vous avez une erreur javascript dans votre page et l'appel AJAX n'est pas en cours d'exécution. Avez-vous inclus les scripts 'MicrosoftAjax.js' et' MicrosoftMvcAjax.js' sur votre page? –

+0

Merci. Cela a résolu mon problème. Comment puis-je afficher les erreurs modelstate retournées par Json? Que faire si je suis ce qui suit: ModelState.AddModelError ("_ FORM", "Nom d'utilisateur ou mot de passe est incorrect."); return Json (new {ModelState}); Quel doit être mon code dans la vue alors? – learning

0

Essayez ceci,

success: function(data) { 
     alert(data.CategoryId + " " + data.Test); 

EDIT:

function createCategoryComplete(data) 
{ 
    document.getElementById("UrTxtBoxID").value = data.Test; 
} 
+0

où dois-je écrire ceci? Comment puis-je mettre à jour les zones de texte avec les valeurs de data.CategoryId et data.Test? – learning

Questions connexes