【发布时间】:2021-01-09 08:50:28
【问题描述】:
我是 ASP.NET Core Razor 页面的新手。
在索引页面中,我获取客户数据并通过来自 CustomerController 的 ajax 在 jQuery 数据表中显示它们。最后一列有删除按钮。通过这些按钮,我在 CustomerController 中调用 delete 方法。
JS Ajax 文件
$(document).ready(function() {
$("#customerDataTable").dataTable({
"processing": true,
"serverSide": true,
"filter": true,
"ajax": {
"url": "/api/customer",
"type": "post",
"datatype": "json"
},
"columnDefs":[
{
"targets": [0],
"visible": false,
"searchable": false
}],
"columns":[
{ "data": "id", "name": "Id", "autoWidth": true },
{ "data": "firstName", "name": "First Name", "autoWidth": true },
{ "data": "lastName", "name": "Last Name", "autoWidth": true },
{ "data": "contact", "name": "Contact", "autoWidth": true },
{ "data": "email", "name": "Email", "autoWidth": true },
{ "data": "dateOfBirth", "name": "Date Of Birth", "autoWidth": true },
{
"render": function(data,type, row) {
return "<a href='#' class='btn btn-danger' onclick=deleteCustomer('" + row.id + "');
>Delete</a>"; }
}]
});
});
function deleteCustomer(id) {
$.ajax({
url: "/api/customer",
type: "GET",
data: id
});
}
在 CustomerContoller 中,我想使用参数重定向到 DeleteCustomer 剃须刀页面。
[HttpGet]
public IActionResult DeleteCustomer()
{
var id = Request.Query.Keys.ToList()[0];
return RedirectToPage("/DeleteCustomer", new{id});
}
在 DeleteCustomer 页面中有一个简单的 get 方法。
[BindProperty]
public int CustomerId { get; set; }
public IActionResult OnGet(string id)
{
CustomerId = int.Parse(id);
return Page();
}
当我逐行调试应用程序时,CustomerControll 正确重定向到 DeleteCustomer 页面,并且页面中的 OnGet 方法返回 Page() 方法,但浏览器不会呈现页面的 HTML 部分而没有任何错误。只是索引页面仍然显示数据表。
如果我在地址栏中调用 DeleteCustomer 页面,DeleteCustomer 页面将呈现。
为什么return Page()在浏览器中被RedirectToPage调用后不渲染显示页面?
【问题讨论】: