Không hành động thuộc tính được sử dụng khi chúng ta muốn một phương thức công khai trong bộ điều khiển nhưng không muốn coi nó như một phương thức hành động. Phương thức hành động là một phương thức công khai trong bộ điều khiển có thể được gọi bằng URL. Vì vậy, theo mặc định, nếu chúng ta có bất kỳ phương thức công khai nào trong bộ điều khiển thì nó có thể được gọi bằng yêu cầu URL. Để hạn chế quyền truy cập vào các phương thức công khai trong bộ điều khiển, có thể sử dụng thuộc tính NonAction.
Bây giờ chúng ta hãy xem xét HomeController có hai phương thức công khai MyMethod1 vàMyMethod2 .
Bộ điều khiển
Ví dụ
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>"; } } }
Hãy để chúng tôi gọi cả hai phương thức trong HomeController bằng cách sử dụng các URL bên dưới.
https:// localhost:59146 / Home / MyMethod1
https:// localhost:59146 / Home / MyMethod2
Giả sử MyMethod2 là dành cho một số mục đích nội bộ và chúng tôi không muốn nó được gọi bằng yêu cầu URL. Để đạt được điều này, chúng tôi phải trang trí nó bằng NonActionattribute.
Bộ điều khiển
Ví dụ
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>"; } } }
Dưới đây là kết quả của việc tạo MyMethod2 Non Action.
Đầu ra