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

ASP MVC中无ActionResult的公开方法可被URL访问的原因及阻止方案

问题原因与解决方案

为什么无返回值的公开方法能被URL访问?

ASP.NET MVC的路由系统默认会将控制器中所有公开(public)、参数可通过请求绑定(或无参数)的方法识别为可访问的Action方法,不管方法的返回值类型是什么——哪怕是void,只要符合路由匹配规则(比如/控制器名/方法名),就会被执行。

阻止此类访问的方法

  • 将方法的访问修饰符改为非公开(如private或protected):
    public class HomeController : Controller
    {
           private void MyFunction()
           { 
              // Do some thing
           }
    }
    
  • 给方法添加[NonAction]特性,明确标记该方法不是Action:
    public class HomeController : Controller
    {
           [NonAction]
           public void MyFunction()
           { 
              // Do some thing
           }
    }
    

内容的提问来源于stack exchange,提问作者Vương Nguyễn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:22:01