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