使用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 片段。