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

ASP.NET MVC中超链接跳转视图失败:找不到视图位置的问题排查

问题分析与解决:直接访问视图文件的错误

你这里的核心问题是直接在链接里指向了.cshtml视图文件的物理路径,这不符合ASP.NET MVC的设计逻辑——MVC是通过「控制器的动作方法」来返回视图的,视图文件本身是框架内部处理的资源,不能直接通过URL访问,所以浏览器会提示找不到位置。

下面给你两种正确的实现方式,以及必要的注意事项:

1. 使用Razor辅助方法生成正确链接(推荐)

在Razor视图里,优先用Html.ActionLink或者Url.Action来生成符合路由规则的链接,这样能避免手动写路径出错:

方式一:用Html.ActionLink直接生成a标签

<p class="mb-0">
    @Html.ActionLink("I want to check approval", "ApprovalValidation", "Account")
</p>

方式二:用Url.Action生成地址,搭配原生a标签

如果你想保留自己的class样式,这种方式更灵活:

<p class="mb-0">
    <a href="@Url.Action("ApprovalValidation", "Account")">I want to check approval</a>
</p>

这里的参数规则是:第一个是动作方法名(ApprovalValidation),第二个是控制器名(Account,注意不要加Controller后缀)。

2. 确保控制器存在对应的动作方法

你需要在AccountController里定义一个名为ApprovalValidation的动作方法,这样框架才能找到对应的视图并返回:

public class AccountController : Controller
{
    public ActionResult ApprovalValidation()
    {
        // 这里可以添加业务逻辑,比如获取审批数据
        return View(); // 框架会自动查找~/Views/Account/ApprovalValidation.cshtml视图
    }
}

补充说明路由规则

ASP.NET MVC的默认路由是{controller}/{action}/{id},所以正确的访问URL应该是类似/Account/ApprovalValidation,而不是直接指向视图文件的物理路径。视图文件的位置是框架内部映射的,不需要前端直接访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 22:12:47