2010-06-23 6 views
0

Nouveau sur MVC, en essayant de passer une variable à partir de Flash en utilisant FSCommand (fonctionne bien avec d'autres fonctions) d'une vue à l'autre. Le Javascript J'utilise:var javascript vers asp.net MVC modèle

function p1_DoFSCommand(command, args) { 
      var p1Obj = InternetExplorer ? p1 : document.p1; 
      if (command == "nameClip") { 
       var FlashName = [args]; 
      } 

dans le HomeController:

public ActionResult Testing(string FlashName) 
     { 

      ViewData["Message"] = FlashName; 

      return View(); 

     } 

Dans la deuxième vue:

Html.Encode(ViewData["message"]) 

apprécierait votre aide.

Répondre

0

Cela devrait obtenir les données à la méthode d'action:

function p1_DoFSCommand(command, args) { 
       var p1Obj = InternetExplorer ? p1 : document.p1; 
       if (command == "nameClip") { 
        var FlashName = [args]; 

        // might have to replace '?' with '&' 
        var formData = "?FlashName=" + FlashName; 

        $.post('/HomeController/Testing', formData, function(res) 
        { 
         // do stuff with response 

        }, "json"); 
    } 

Vous aurez également besoin de faire référence jQuery pour que cela fonctionne.

Si vous devez passer cette valeur à un autre contrôleur, il suffit de changer

$.post('/HomeController/Testing', formData, function(res) 

à

$.post('/OtherController/Testing', formData, function(res) 

modifier:
Je ne sais pas exactement ce que vous essayez de faire, mais ViewData est une construction de données qui n'a de pertinence que dans le contrôleur et lors de l'exécution de la vue. Au moment où le JavaScript est en cours d'exécution, il est dans le contexte d'une page rendue, donc ViewData est vide de sens. Si, à votre avis vous aviez

<input id='MyMessage' type='hidden' value='<%=(string)ViewData['Message'] %>' />,

vous pouvez alors obtenir la valeur que vous cherchez avec

$('#MyMessage').val(); 

ou

document.getElementById("MyMessage").value; 
+0

Vous pouvez également utiliser un objet construire les paramètres. 'var formData = {FlashName: FlashName};' – Ryan

+0

Merci pour l'assistance, je reçois toujours la valeur null pour le var, dois-je changer le HomeController! à partir de ViewData ["Message"] = NomFlash; Retour vue(); } – hncl

+0

@hnabih, J'ai mis à jour la réponse à votre question. Je ne sais pas si c'est ce que vous demandez .. – DaveDev