2010-04-23 10 views
1

Je travaille sur ma première application MVC et je rencontre un petit problème. J'ai une table de données que quand une rangée est cliquée, je veux renvoyer le détail de cette rangée. J'ai une fonction configurée comme:JQuery Ajax Obtenir les paramètres de passage

function rowClick(item) 
{ 
    $("#detailInfo").data("width.dialog", 800); 
    $.ajax({ 
     type: "GET", 
     contentType: "application/json; charset=utf-8", 
     url: "<%= Url.Action("GetDetails", "WarningRecognition")%>", 
     data: "", 
     dataType: "json", 
     success: function(data) {//do some stuff...and show results} 
} 

Le problème que je rencontre est le passage de l'élément. J'appelle la fonction de contrôleur qui ressemble à ceci:

public JsonResult GetDetails(string sDetail) 
    { 
     Debug.WriteLine(Request.QueryString["sDetail"]); 
     Debug.WriteLine("sDetail: " + sDetail); 
     var myDetailsDao = new WarnRecogDetailsDao(); 

     return new JsonResult { Data = myDetailsDao.SelectDetailedInfo(Convert.ToInt32(sDetail)) }; 
    } 

Mais il ne montre jamais rien comme le « sDetail ». Il frappe la fonction mais rien n'y est passé. J'ai donc lu où vous passez le paramètre via les données, mais j'ai essayé toutes les combinaisons que je peux penser et il n'apparaît jamais. Essayé:

data: {"item"} 
data: {sDetail[item]} 
data: {sDetail[" + item + "]} 

Répondre

1

Avez-vous essayé { sDetail: item }? Le nom de l'élément de données doit correspondre à l'argument de l'action ou asp.net mvc ne saura pas comment câbler les choses correctement.

+0

Oui J'ai essayé mais cela n'apparaît toujours pas dans le COntroller comme quoi que ce soit qui lui est passé. – George

+0

@George: Pouvez-vous publier l'URL que votre requête get génère? – R0MANARMY

+0

Je ne suis pas certain de comprendre ce que vous voulez que je poste. – George

0

Tout ce que je sais, c'est le format doit être:

var data = '{"sDetail":"item"}'; 

Il ne ressemble pas à vos données dans le format. Avez-vous essayé cette combinaison?

+0

Oui essayé mais toujours rien n'est passé au contrôleur. – George

Questions connexes