在 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 設定為非操作方法的輸出。
輸出
廣告