我有一個簡單的web應用程序,它有一個HouseUnitController
,其操作返回JSONResult
。在ASP.NET中從JSON返回的未定義數據
public JsonResult GetHouseUnits()
{
var houseUnits = db.HouseUnits.Include(h => h.HouseModel).Include(h => h.Site)
.Select(h => new {
h.Block,
h.Lot,
h.HouseModel.ModelName,
h.Site.SiteName,
h.IsSold,
h.FloorArea,
h.LotArea,
h.Price
});
return Json(houseUnits, JsonRequestBehavior.AllowGet);
}
在我看來,我有:
<button data-retrieve data-view="tree" data-service = "./GetHouseUnits" data-container="#view" class="btn btn-warning btn-sm" > <span class="glyphicon glyphicon-arrow-down"></span> <strong>Load Data </strong> </button>
當我瀏覽localhost:62516/HouseUnits/GetHouseUnits
,我可以看到返回的JSON結果。但是,當我點擊按鈕時,我沒有收到任何數據。這裏是正在爲其他HTML頁面我的腳本文件:
$('button[data-retrieve]').click(function(){
var treeHeaderLimit = 2;
var APIurl = $(this).data('service');
var view = $(this).data("view");
var dataCount = 5;
var selId = $(this).data("container");
createView(APIurl, selId, view, dataCount, treeHeaderLimit);
});
我有一種感覺,它是與在按鈕的URL,因爲它似乎是從AJAX返回的數據是undefined
。
function createView(APIurl, selId, viewType, dataCount, treeHeaderLimit){
$.ajax({
url: APIurl,
type: "GET",
contentType: "application/json",
dataType: "json", //This is used to avoid `No-Access-Control-Allow-Origin` header error
success:function(data){
if (viewType=="tree"){
generateTree(data, selId, dataCount, treeHeaderLimit)
} else{
generateTable(data, selId, dataCount);
}
},
error: function (err) {
alert(err);
}
});
}
有人可以幫我解決這個問題嗎?我試過./GetHouseUnits
和../GetHouseUnits
,但它不起作用。謝謝。
嘗試使用Url.Action()代替靜態URL的 –
您是否爲數據服務屬性嘗試了'HouseUnits/GetHouseUnits'? – Sunil
謝謝@FrebinFrancis。發佈這個答案,我可以接受它。 – Cyval