2012-01-03 168 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