Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

ASP .Net MVC C#에서 NonActionAttribute의 중요성은 무엇입니까?

<시간/>

비액션 속성은 컨트롤러에서 공개 메소드를 원하지만 그것을 액션 메소드로 취급하고 싶지 않을 때 사용됩니다. 작업 메서드는 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://localhost:59146/Home/MyMethod1

https://localhost:59146/Home/MyMethod2

ASP .Net MVC C#에서 NonActionAttribute의 중요성은 무엇입니까?

ASP .Net MVC C#에서 NonActionAttribute의 중요성은 무엇입니까?

MyMethod2가 어떤 내부 목적을 위한 것이고 URL 요청을 사용하여 호출되는 것을 원하지 않는다고 가정해 보겠습니다. 이를 달성하려면 NonActionattribute로 장식해야 합니다.

컨트롤러

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 Non Action을 만든 결과입니다.

출력

ASP .Net MVC C#에서 NonActionAttribute의 중요성은 무엇입니까?