c# - ASP.NET MVC 删除函数不返回列表
问题描述
从列表中删除项目后,我的控制器没有返回列表,在浏览器中它会引发此错误
找不到此本地主机页面。未找到该网址的网页:https://localhost:44384/RaidRequests/IndexAsync
这开始了,然后我添加了分页,我处理了我的视图的所有其他问题,但删除不起作用。
这是我的控制器中的删除功能:
public async Task<IActionResult> DeleteConfirmed(int? id)
{
var raidRequest = await _context.RaidRequest.FindAsync(id);
_context.RaidRequest.Remove(raidRequest);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(IndexAsync));
}
我的索引如下所示:
public async Task<ViewResult> IndexAsync(string sortOrder, string currentFilter, string searchString, int? page)
{
ViewBag.CurrentSort = sortOrder;
ViewBag.NameSurnameSortParm = sortOrder == "NameSurname" ? "NameSurname_desc" : "NameSurname";
ViewBag.ReasonSortParm = sortOrder == "Reason" ? "Reason_desc" : "Reason";
ViewBag.AccessSortParm = sortOrder == "Access" ? "Access_desc" : "Access";
ViewBag.UserOrAdminSortParm = sortOrder == "UserOrAdmin" ? "UserOrAdmin_desc" : "UserOrAdmin";
ViewBag.DepartmentSortParm = sortOrder == "Department" ? "Department_desc" : "Department";
ViewBag.UNCPathSortParm = sortOrder == "UNCPath" ? "UNCPath_desc" : "UNCPath";
if (searchString != null)
{
page = 1;
}
else
{
searchString = currentFilter;
}
ViewBag.CurrentFilter = searchString;
var request = from c in _context.RaidRequest
select c;
if (!String.IsNullOrEmpty(searchString))
{
request = request.Where(s => s.NameSurname.Contains(searchString));
}
request = sortOrder switch
{
"NameSurname_desc" => request.OrderByDescending(c => c.NameSurname),
"Reason" => request.OrderBy(c => c.Reason),
"Reason_desc" => request.OrderByDescending(c => c.Reason),
"Access" => request.OrderBy(c => c.Access),
"Access_desc" => request.OrderByDescending(c => c.Access),
"UserOrAdmin" => request.OrderBy(c => c.UserOrAdmin),
"UserOrAdmin_desc" => request.OrderByDescending(c => c.UserOrAdmin),
"Department" => request.OrderBy(c => c.Department),
"Department_desc" => request.OrderByDescending(c => c.Department),
"UNCPath" => request.OrderBy(c => c.UNCPath),
"UNCPath_desc" => request.OrderByDescending(c => c.UNCPath),
_ => request.OrderBy(c => c.Id),
};
int pageSize = 10;
int pageNumber = (page ?? 1);
return View(await PaginatedList<RaidRequest>.CreateAsync(request, page ?? 1, pageSize));
}
我认为问题出在退货部分。我需要在那里写什么才能成功返回列表?
解决方案
动作名称是Index
。该错误抱怨该 URL 是:
https://localhost:44384/RaidRequests/IndexAsync
代替
https://localhost:44384/RaidRequests/Index
那是因为nameof(IndexAsync)
返回IndexAsync
而不是Index
. 返回语句应该是:
return RedirectToAction("Index");
推荐阅读
- javascript - Highcharts 渲染周期(无数标签格式化程序调用)
- python - scikit-learn train_test_split 是否保留关系?
- java - 基于选择结果的基本锁定
- .htaccess - htaccess 文件中 https 的重定向规则不起作用
- c - 将提交推送到 GitHub
- python - Python Pandas:删除A列第一个空单元格下方的所有数据行
- c# - 单击电子邮件中的链接时显示特定记录
- sql - 从带有标签 a 或 b 和 c 的表中选择行
- javascript - 如何在 json/csv 中转换 sql 转储文件
- alfresco - 来自户外内容的常见元数据字段如何工作?