ASP .Net MVC C# 中的 NonActionAttribute 有何意义?
csharpserver side programmingprogramming更新于 2025/9/30 16:52:17
当我们想要在控制器中使用公共方法,但又不想将其视为 Action 方法时,可以使用 NonAction 属性。Action 方法是控制器中的公共方法,可以通过 URL 调用。因此,默认情况下,如果控制器中存在任何公共方法,则可以使用 URL 请求来调用。为了限制对控制器中公共方法的访问,可以使用 NonAction 属性。
现在假设 HomeController 有两个公共方法 MyMethod1 和 MyMethod2。
Controller
示例
using System.Web.Mvc;
namespace DemoMvcApplication.Controllers{
public class HomeController : Controller{
public string MyMethod1(){
return "<h1>My Method 1 Invoked</h1>";
}
public string MyMethod2(){
return "<h1>My Method 2 Invoked</h1>";
}
}
}
让我们使用以下 URL 调用 HomeController 中的这两个方法。
http://localhost:59146/Home/MyMethod1
http://localhost:59146/Home/MyMethod2


假设 MyMethod2 用于某些内部用途,我们不希望通过 URL 请求调用它。为此,我们必须使用 NonAction 属性对其进行修饰。
Controller
示例
using System.Web.Mvc;
namespace DemoMvcApplication.Controllers{
public class HomeController : Controller{
public string MyMethod1(){
return "<h1>My Method 1 Invoked</h1>";
}
[NonAction]
public string MyMethod2(){
return "<h1>My Method 2 Invoked</h1>";
}
}
}
以下是执行 MyMethod2 非操作的输出。
输出


