【发布时间】:2018-05-16 13:01:59
【问题描述】:
我正在尝试从 ASP.NET Core 2.0 中的 Razor 页面获取一些数据。
但问题是它不返回任何数据。 我也试过调试它,它根本不会触发那个方法(OnGetProducts)。
模型Index.cshtml.cs:
private IProductRepository _productRepository;
public IndexModel(IProductRepository repository)
{
_productRepository = repository;
}
public void OnGet()
{
}
public IActionResult OnGetProducts(int page)
{
var model = _productRepository.GetProducts().Skip(page * 10).Take(10);
return new JsonResult(model);
}
剃须刀页面Index.cshtml
<div id="products">
</div>
@section scripts{
<script>
$(function () {
getProducts(0);
});
var isInitialized = false;
function getProducts(page) {
$.ajax({
type: 'GET',
url: "Products",
contentType: "application/json",
dataType: "json",
data: {
handler: 'Products',
page: page
},
success: function (datas) {
console.log(datas);
}
});
}
</script>
}
附言此页面位于 Pages/Products/Index.cshtml(.cs) 文件夹中
【问题讨论】:
-
如果我尝试调试失败的 ajax 调用,我的第一反应是设置错误回调并查看它告诉我的错误...
-
也在浏览器中按 F12 并查看网络选项卡 + 控制台。
-
我问了一个类似的问题并最终让它工作(见上一条评论),但我决定为 AJAX 调用创建一个 Web API 控制器更简单更好的方法。
-
我遇到了同样的问题,Url 需要是处理程序,格式如下: url: "?handler=Products"
-
问题出在 AntiForgeryKey。
标签: asp.net-core asp.net-ajax asp.net-core-2.0 razor-pages