하위 작업은 하위 요청을 통해서만 액세스할 수 있습니다. URL 요청에 응답하지 않습니다. 시도가 이루어지면 - 하위 작업은 하위 요청에서만 액세스할 수 있다는 런타임 오류가 발생합니다. Action() 및 RenderAction() html 도우미를 사용하여 뷰에서 자식 요청을 만들어 자식 작업 메서드를 호출할 수 있습니다.
자식 작업 메서드는 NonAction 메서드가 Action() 또는 RenderAction() 도우미를 사용하여 호출할 수 없다는 점에서 NonAction 메서드와 다릅니다.
다음은 URL을 사용하여 호출하려고 할 때 발생하는 하위 작업 오류입니다.
컨트롤러
예
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> }
출력
하위 작업은 아래와 같이 "RenderAction()" HTML 도우미를 사용하여 호출할 수도 있습니다.
@{ Html.RenderAction("Countries", new { countryData = new List<string>() { "USA", "UK", "India", "Australia" } }); }