在 MVC 內使用Ajax 到後端取得資料,資料型態是一串List<自訂Object>。
//定義要回傳的物件
public class ResultObject
{
// 000:success 999:Error
public String ReturnCode { get; set; }
public String ReturnMessage { get; set; }
public ResultObject()
{
ReturnCode = null;
ReturnMessage = null;
}
}
//定義自訂Object
public class AP
{
String APID{get;set;}
String APName{get;set;}
}
前端在JS用ajax的方式呼叫controller
var _Object = {
//可自訂要傳輸到後端的條件
};
$.ajax({
type: "POST",
url: '/AU/AU0012_GETAPSUBList',
data: JSON.stringify(_Object),
async: false,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (_result) {
if (_result.ReturnCode == '000') {
//因為後端有將List轉為Json,所以這邊在解析一次。
var _Array = JSON.parse(_result.ReturnMessage);
if (_Array.length > 0) {
$.each(_Array, function (index, item) {
//陣列裡面的element就是在上面自訂的Object AP
});
}
}
else {
alert(_result.ReturnMessage);
}
},
error: function (error) {
alert('error: ' + error);
}
});
Controller:
[HttpPost]
public ActionResult AU0012_GETAPSUBList(String Parameter)
{
ResultObject _result = new ResultObject();
if (ModelState.IsValid)
{
List<AP> APSUBQuery = new List<AP>();
// 後端的處理邏輯將APSUBQuery的值塞滿
_result.ReturnCode = "000";
_result.ReturnMessage = System.Web.Helpers.Json.Encode(APSUBQuery); //用Json將List轉道ReturnMessage內
}
return Json(_result);
}