在 MVC 內使用Ajax 到後端取得資料List<自訂Object>

  • 3276
  • 0
  • MVC
  • 2019-06-26

在 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);
}