在 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://:59146/Home/MyMethod1

https://: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+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告