2010-06-23 93 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