2017-03-13 110 views
1

我有ajax返回部分視圖與強烈的類型 我希望成功獲取模型的值。 有可能嗎? 代碼返回:mvc ajax返回部分視圖與模型獲取模型的值在成功

return View("Test", Model); 

在阿賈克斯: 我想要得到的數據varible模型

success: function (data) { 
     data. 
      } 
+0

取看看http://stackoverflow.com/questions/18050894/如何調用一個動作結果從jQuery和http://stackoverflow.com/questions/33201617/using-jquery-ajax-to-call-actionresult-method-in-controller-and-return-data as他們都解決你的問題。 – jonesy

回答

0

你的局部視圖需要返回JSON數據,你能夠訪問這樣的數據。

在你的控制器(我假設這是一個HTTPPost調用):

return Json(new { id = 1, name = "Test" }); 

在您的JS Ajax調用:

success: function(data) { 
    alert(data.name); //alerts 'Test' 
} 

更新 OK,如果你想擁有部分視圖返回和模型,你可以返回視圖,因爲你已經然後將模型轉換爲JSON字符串來訪問和使用JS中的視圖也許嗎?這裏有一個粗略的例子...

在控制器

這樣:

using System.Web.Script.Serialization; 
... 
var jsonstring = new JavaScriptSerializer().Serialize(Model); 
... 
ViewBag.JsonString = jsonString; 

然後在局部視圖:

@{ 
    var jsonString = ViewBag.JsonString; 
} 
<script> 
var data = JSON.parse("@jsonString"); 
alert(data.name); //alerts 'Test' 
</script> 
+0

嗨,謝謝,但我需要返回部分視圖和模型,在你的例子中,我如何在partirl視圖中使用? – rikush

+0

@rikush更新 - 希望有所幫助。 – scgough

+0

你有'@ {0124}在你的部分視圖的頂部(在'

0

沒有,因爲你需要從控制器動作返回JsonResult回這將如:

return Json(new {response = Model }); 

現在,它成功的ajax,你可以訪問結果從這是返回的JSON對象:

success: function (data) { 
     console.log(data); 
      } 
0

試試這個是Ajax表單

OnSuccess = "ShowMessage()" 

和腳本是

<script> 
    function ShowMessage() { 
       document.getElementById('info').value='YOUR_MESSAGE'; 
       setTimeout(function() { 
       $("#info").hide(); 
       }, 3000); 
      } 
    <script> 

和你的HTML標籤應該是這樣的

<div id="info"></div>