在 ASP .Net MVC C# 中,NonActionAttribute 的作用是什么?


当我们希望控制器中存在一个公共方法,但又不想将其视为操作方法时,可以使用 **NonAction** 属性。操作方法是控制器中一个可以 使用 URL 调用 的公共方法。因此,默认情况下,如果控制器中存在任何公共方法,则可以使用 URL 请求调用它。为了限制对控制器中公共方法的访问,可以使用 NonAction 属性。

现在让我们考虑 HomeController 具有两个公共方法 **MyMethod1 和 MyMethod2**。

控制器

示例

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 中的这两个方法。

https://127.0.0.1:59146/Home/MyMethod1

https://127.0.0.1:59146/Home/MyMethod2

假设 MyMethod2 用于某些内部目的,我们不希望通过 URL 请求调用它。为此,我们必须使用 NonAction 属性对其进行装饰。

控制器

示例

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 设置为非操作方法的输出。

输出

更新于: 2020-09-24

4K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告