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

ASP .Net MVC C#에서 ChildActionOnly 속성의 사용은 무엇입니까?

<시간/>

하위 작업은 하위 요청을 통해서만 액세스할 수 있습니다. URL 요청에 응답하지 않습니다. 시도가 이루어지면 - 하위 작업은 하위 요청에서만 액세스할 수 있다는 런타임 오류가 발생합니다. Action() 및 RenderAction() html 도우미를 사용하여 뷰에서 자식 요청을 만들어 자식 작업 메서드를 호출할 수 있습니다.

자식 작업 메서드는 NonAction 메서드가 Action() 또는 RenderAction() 도우미를 사용하여 호출할 수 없다는 점에서 NonAction 메서드와 다릅니다.

다음은 URL을 사용하여 호출하려고 할 때 발생하는 하위 작업 오류입니다.

ASP .Net MVC C#에서 ChildActionOnly 속성의 사용은 무엇입니까?

컨트롤러

using System.Collections.Generic;
using System.Web.Mvc;
namespace DemoMvcApplication.Controllers{
   public class HomeController : Controller{
      public ActionResult Index(){
         return View();
      }
      [ChildActionOnly]
      public ActionResult Countries(List<string> countries){
         return View(countries);
      }
   }
}

색인 보기

@{
   ViewBag.Title = "Countries List";
}
<h2>Countries List</h2>
@Html.Action("Countries", new { countries = new List<string>() { "USA", "UK",
"India", "Australia" } })

국가 보기

@model List<string>
@foreach (string country in Model){
   <ul>
      <li>
         <b>
            @country
         </b>
      </li>
   </ul>
}

출력

ASP .Net MVC C#에서 ChildActionOnly 속성의 사용은 무엇입니까?

하위 작업은 아래와 같이 "RenderAction()" HTML 도우미를 사용하여 호출할 수도 있습니다.

@{
   Html.RenderAction("Countries", new { countryData = new List<string>() {
   "USA", "UK", "India", "Australia" } });
}