2012-01-03 169 views
0

我正在使用MVC 3.0(Razor框架)的项目工作。我试图从控制器获取值来查看使用按钮上的Viewdata点击Javascript Method.Its在document.ready上,但不在按钮click.So请帮助获取按钮点击viewdata值。在mvc剃须刀Viewdata

以下是我的代码

 [HttpPost] 
      public ActionResult Update() 
      { 
       ViewData["myInfo"] = "my info"; 
       return View(); 
      } 

我的JavaScript代码:

<script type="text/javascript"> 
     $(document).ready(function() { 
      $("#btn").click(function() { 

       $.post("/ImportCSV/Update", {}, 
       function() 
       { 
       var g = '@ViewData["myInfo"]'; 

       }); 
       }); 
       }); 
    </script> 

我想显示按钮可视数据值,单击

+1

你的问题的框架是不理解。你想说,你无法从JavaScript代码??所调用的操作方法传递数据...也发布相关的JavaScript代码 – 2012-01-03 13:41:22

回答

2

你最好返回的JSON结果案件。 ViewData是不好的。不要使用它。在你的情况下,它不起作用,因为你需要定义这个控制器动作的相应视图,它将解释ViewData,它是你在AJAX成功回调中获得的最终HTML片段。使用JSON可以将部分数据直接发送到调用脚本:

[HttpPost] 
public ActionResult Update() 
{ 
    return Json(new { myInfo = "my info" }); 
} 

,然后发送一个AJAX请求到该控制器的动作:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#btn").click(function() { 
      var url = @Url.Action("Update", "ImportCSV"); 
      $.post(url, {}, function (result) { 
       var myInfo = result.myInfo; 
       alert(myInfo); 
      }); 
     }); 
    }); 
</script> 
+0

非常感谢,但有没有任何方式,除了JSON,因为我已经返回字符串相关与我的其余functinality.pls建议做什么 – user1004864 2012-01-03 14:10:09

+0

@ user1004864,在这种情况下,JSON似乎更适应。正如我在我的回答中已经指出的,你仍然可以使用ViewData,但是你必须定义一个相应的'Update.cshtml'视图。在这个视图中,您将获得您在控制器中设置的此ViewData的内容。在AJAX成功回调中,您将获得此视图呈现的结果。 – 2012-01-03 14:11:40

+1

好的非常感谢你的帮助...我会按照这 – user1004864 2012-01-03 14:15:32