2010-06-23 58 views
0

MVC的新手,試圖通過FSCommand從一個視圖向另一個視圖傳遞一個變量(與其他函數一起使用)。 JavaScript的我使用:var javascript to asp.net MVC model

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

在HomeController的:

public ActionResult Testing(string FlashName) 
     { 

      ViewData["Message"] = FlashName; 

      return View(); 

     } 

在第二個觀點:

Html.Encode(ViewData["message"]) 

很感激你的幫助。

回答

0

這應該得到的數據操作方法:

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"); 
    } 

您還需要引用jQuery的這個工作。

如果你需要傳遞值到另一個控制器,只需更改

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

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

編輯:
我不知道你在想什麼做,但ViewData是一個數據結構,只有在控制器和視圖執行時才具有相關性。在JavaScript運行時,它處於渲染頁面的上下文中,因此ViewData沒有意義。如果,在你看來,你不得不

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

,那麼你可以得到你所要尋找的

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

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

你也可以使用一個對象的值建立參數。 'var formData = {FlashName:FlashName};' – Ryan 2010-06-23 13:48:16

+0

感謝您的協助,我仍然爲var獲得null值,是否需要更改HomeController!從 ViewData [「Message」] = FlashName; return View(); } – hncl 2010-06-23 16:34:51

+0

@hnabih,我已經更新了回答你的問題的答案。 – DaveDev 2010-06-25 11:49:18