代码之家  ›  专栏  ›  技术社区  ›  hncl

var javascript到ASP.NET MVC模型

  •  0
  • hncl  · 技术社区  · 14 年前

    在MVC中,尝试使用fscommand将变量从一个视图传递到另一个视图(适用于其他函数)。我使用的javascript:

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

    在主控制器中:

     public ActionResult Testing(string FlashName)
            {
    
                ViewData["Message"] = FlashName;
    
                return View();
    
            }
    

    在第二个视图中:

    Html.Encode(ViewData["message"])
    

    感谢您的帮助。

    1 回复  |  直到 14 年前
        1
  •  0
  •   DaveDev    14 年前

    这应该将数据传递给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");
        }
    

    您还需要参考jquery,这样才能工作。

    如果需要将该值传递给另一个控制器,只需更改

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

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

    编辑:
    我不确定你到底想做什么,但是view data是一个数据结构,它只与控制器和视图执行时间相关。当javascript运行时,它位于呈现页面的上下文中,因此viewdata毫无意义。如果在你看来

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

    然后你就可以得到你想要的价值

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

    document.getElementById("MyMessage").value;