gpt4 book ai didi

javascript - ASP.NET 中从 JSON 返回的未定义数据

转载 作者:行者123 更新时间:2023-12-02 15:11:56 26 4
gpt4 key购买 nike

我有一个简单的 Web 应用程序,其中有一个 HouseUnitController 以及一个返回 JSONResult 的操作。

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>&nbsp; &nbsp;<strong>Load Data </strong>&nbsp;</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返回的数据似乎是未定义

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 但它不起作用。谢谢。

最佳答案

用 ASP.NET MVC 中的 Url.Action() 方法替换静态 URL

不要使用data-service = "./GetHouseUnits",而是使用"@Url.Action("{action}","{controller}")"

希望这有帮助

关于javascript - ASP.NET 中从 JSON 返回的未定义数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com