2010-06-01 9 views
0

Voir:valeur ASP.NET MVC AJAX ne pas afficher

function success(arg) { 
     var obj = arg.get_response().get_object();     
     if (obj.ErrorMessage === '') { 
      var answer = document.createElement('div'); 
      answer.appendChild(document.createTextNode(obj.Answer)); 
      document.getElementById('answers').appendChild(answer); 
     } else { 
      document.getElementById('errors').innerHTML = obj.ErrorMessage; 
     } 
    } 

<% using (Ajax.BeginForm("EditOrganizationMeta", "Organization", new AjaxOptions { HttpMethod = "POST", OnSuccess = "success" })) { %>    

    <input type="submit" name="button<%=OrganizationMeta.vcr_MetaKey + Lang.int_LangId %>" value="Save" /> 
    <div id="errors"></div> 
    <div id="answers"></div> 

<% } %> 

Controller:

[HttpPost] 
[ValidateInput(false)] 
public ActionResult EditOrganizationMeta(FormCollection collection) 
{ 
    return Json(new { Answer = "Record Successfully Saved", ErrorMessages = "Title is required" }); 
} 

La chose est que la méthode de succès dans le javascript ne reçoit pas les paramètres requis. C'est l'impression non définie là. Y at-il un problème dans la méthode javascript OnSuccess?

Répondre

0

Tout d'abord, la suggestion de débogage rapide:

function success(arg) { 
    alert(arg); 
    var obj = arg.get_response().get_object(); 
    ... 

Ceci est une simple vérification pour voir si vous obtenez quoi que ce soit passé de nouveau à vous dans la requête.

Deuxième suggestion:

Qu'est-ce que cela rend en fait que, lorsque vous affichez la source de la page ...

<% using (Ajax.BeginForm("EditOrganizationMeta", 
    "Organization", new AjaxOptions { 
     HttpMethod = "POST", OnSuccess = "success" })) ... 

Vous cherchez le bit où il appelle la fonction intitulée « succès "- fait-il passer les données dans la fonction? Si vous êtes toujours bloqué, mettez à jour votre question avec la sortie HTML rendue pour la balise de formulaire.

0
function success() { 
var url = '<%= Url.Action("EditOrganizationMeta", "Organization") %>'; 
      $.post(url, null, function(data) { 
       alert(data["Answer"]); 
      }); 
} 

cela fonctionne pour moi