ASP .Net MVC C# 中 ChildActionOnly 特性有哪些用途?


子操作只能通过子请求访问。它不会响应 URL 请求。如果尝试这样做,将引发一条运行时错误,说明 - 子操作只能通过子请求访问。可以使用操作() 和 RenderAction() html 帮助程序,通过从视图发出子请求来调用子操作方法。

子操作方法与 NonAction 方法不同,因为 NonAction 方法不能使用 Action() 或 RenderAction() 帮助程序调用。

下面是我们尝试使用 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" } });
}

更新于:2020 年 9 月 24 日

945 次观看

开启你的 职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.