Google Code Prettify

使用jQuery AJAX 發送資料後,您可以透過回呼函數取得伺服器端傳回的資料

使用jQuery AJAX 發送資料後,您可以透過回呼函數取得伺服器端傳回的資料。如果伺服器端傳回的資料包含ViewBag中的訊息,可以透過JsonResult或部分視圖的HTML 直接傳遞這些訊息。


1. 使用JsonResult返回ViewBag數據

假設在伺服器端,您在Controller中設定了ViewBag,然後將資料通過JsonResult傳回給前端。

伺服器端程式碼


[HttpPost] public JsonResult SubmitData(string inputData) { // 假设进行了一些操作,并设置了 ViewBag ViewBag.Message = "操作成功"; // 将 ViewBag 数据放入一个匿名对象中,并通过 JSON 返回 return Json(new { message = ViewBag.Message }); }

前端jQuery 程式碼


$.ajax({ type: 'POST', url: '/YourController/SubmitData', data: { inputData: yourData }, success: function(response) { // 这里的 response.message 就是服务器端返回的 ViewBag 数据 console.log('服务器回馈信息: ' + response.message); }, error: function(xhr, status, error) { console.error('发生错误: ' + error); } });


2. 使用部分視圖(Partial View)傳回包含ViewBag資料的HTML

您也可以透過傳回部分視圖,將ViewBag資料嵌入到HTML 中,jQuery 可以從傳回的HTML 中提取這些資料。

伺服器端程式碼


[HttpPost]
public PartialViewResult SubmitData(string inputData) { ViewBag.Message = "操作成功"; // 返回部分视图,这里可以是包含 ViewBag 数据的 HTML return PartialView("_PartialViewName"); }

部分視圖_PartialViewName.cshtml


<div id="message"> @ViewBag.Message </div>

前端jQuery 程式碼


$.ajax({ type: 'POST', url: '/YourController/SubmitData', data: { inputData: yourData }, success: function(response) { // 将返回的 HTML 插入到页面的某个元素中 $('#result').html(response); // 从返回的 HTML 中提取 ViewBag 数据 var message = $('#result #message').text(); console.log('服务器回馈信息: ' + message); }, error: function(xhr, status, error) { console.error('发生错误: ' + error); } });


3. 使用TempData傳遞訊息

如果您想要跨請求傳遞數據,您可以使用TempData。以下是如何透過TempData傳遞資料:

伺服器端程式碼


[HttpPost] public IActionResult SubmitData(string inputData) { TempData["Message"] = "操作成功"; return RedirectToAction("SomeAction"); // 重定向到一个新的视图 } public IActionResult SomeAction() { ViewBag.Message = TempData["Message"]; return View(); }

前端jQuery 程式碼

如果使用TempData,通常會在前端顯示新載入的頁面,而不直接在AJAX 回呼中取得資料。


總結

使用jQuery AJAX 發送請求後,可以透過回呼函數的response參數來取得伺服器端傳回的JsonResult資料或HTML 部分視圖。你可以透過JsonResult直接傳遞ViewBag數據,或透過部分視圖傳回包含ViewBag數據的HTML 片段。