2010-11-30 6 views
1

i ont une application sur mvc qui ont un contrôleur avec une méthode postobjet d'affichage au contrôleur MVC2 de silverlight

[HttpPost] 
public EmptyResult(DispositivoMovil dispositivo) 
{ 
    try 
    { 
    //Something 
    } 
} 

Et je une autre application silverlight qui ont besoin d'utiliser cette méthode, comment puis-je envoyer un DispositivoMovil objet à cette méthode?

Répondre

1

Vous ne pouvez pas envoyer directement un objet à ce contrôleur à partir d'une application Silverlight. Vous devez envoyer une requête HTTP POST en utilisant un WebClient par exemple et en transmettant les valeurs dans le corps POST. Voici un exemple:

var client = new WebClient(); 
var values = new NameValueCollection 
{ 
    { "PropName1", "value 1" }, 
    { "PropName2", "value 2" }, 
    { "ComplexPropName3.SimpleProp", "value 3" }, 
    // And so on for each value in the DispositivoMovil 
}; 
client.UploadValuesCompleted += (sender, e) => 
{ 
    byte[] result = e.Result; 
    // TODO: Do something with the response returned from the controller 
}; 
client.UploadValuesAsync(new Uri("http://example.com/home/emptyresult"), values); 

Pour des scénarios plus contraignants avancés, vous pouvez jeter un oeil à ce blog post.

+0

Merci pour la réponse, c'était très utile pour moi. En Silverlight, vous devez utiliser la classe. Dictionary parameters = new Dictionnaire (); paramètres.Add ("Serial", dispositivo.Serial); paramètres.Ajouter ("Observaciones", dispositivo.Observaciones); – Manuel

+0

FYI, la méthode UploadValuesAsync() et l'événement UploadValuesCompleted n'existent pas dans la version d'exécution Silverlight de WebClient. Utilisez plutôt UploadStringAsync() et UploadStringCompleted. –

Questions connexes