You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击Edit/Delete按钮触发InvalidOperationException:视图未找到

管理员页面Edit/Delete按钮报错排查

问题场景

开发管理员查看、修改用户的网站时,点击页面上的Edit和Delete按钮均触发相同错误。

按钮代码

<td><a asp-controller="Admin" class="btn btn-sm btn-primary" asp-action="Edit" asp-route-id="@item.record_id">Edit</a></td>
<td><a asp-controller="Admin" class="btn btn-sm btn-danger" asp-action="Delete" asp-route-id="@item.record_id">Delete</a></td>

错误信息

An unhandled exception occurred while processing the request.
InvalidOperationException: The view 'Edit' was not found. The following locations were searched:
/Views/Admin/Edit.cshtml
/Views/Shared/Edit.cshtml
/Pages/Shared/Edit.cshtml
Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.EnsureSuccessful(IEnumerable originalLocations)

Delete按钮触发的错误内容完全一致,仅将错误信息中的'Edit'替换为'Delete'

项目结构情况

项目的Views目录下仅存在Admin/Index.cshtml,缺少Edit.cshtml和Delete.cshtml文件;Controllers目录包含AdminController.cs。

问题原因与解决方法

核心原因

ASP.NET MVC框架中,当控制器的Action方法未明确指定返回视图时,会自动查找与Action同名的视图文件。当前AdminController里的Edit和Delete方法要么没指定返回内容,要么默认要返回视图,但对应的视图文件不存在,导致报错。

具体解决步骤

  1. 检查AdminController的Action实现
    打开Controllers/AdminController.cs,查看Edit和Delete方法:
    • 如果是要展示编辑/删除页面,确认是否遗漏创建对应的视图文件;
    • 如果是做接口逻辑(不需要返回页面),把方法返回类型改为IActionResult,使用Json(...)、Ok()等方式返回数据,不要让框架默认去寻找视图。
  2. 创建缺失的视图文件
    若需要返回页面,在Views/Admin目录下新建Edit.cshtml和Delete.cshtml,编写对应的页面代码。
  3. 验证路由参数传递
    确认控制器方法的参数是否能正确接收asp-route-id传递的record_id:如果控制器参数名是id,则无需额外配置;如果参数名是record_id,需要在参数上标注[FromRoute(Name = "record_id")]确保匹配。

内容的提问来源于stack exchange,提问作者Carsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 02:05:18