ChildActionOnly的目的主要就是讓這個Action不通過直接在地址欄輸入地址來訪問,而是需要通過RenderAction來調用它。
<a href="javascript:;" onclick="javascript:document.getElementById('show').style.display=''">
調用子操作</a>
<div id="show" style="display: none">
<% Html.RenderAction("Test", "ChildTest"); %></div>
public ActionResult Index()
{
return View();
}
[ChildActionOnly]
public ActionResult Test()
{
return Content("Hello");
}
http://localhost:666/ChildTest/Test
如果直接這樣訪問Action的話就會報如下錯誤:
操作“Test”只能由子請求訪問。
說明: 執行當前 Web 請求期間,出現未處理的例外狀況。請檢查堆疊追蹤資訊,以瞭解有關該錯誤以及代碼中導致錯誤的出處的詳細資料。
異常詳細資料: System.InvalidOperationException: 操作“Test”只能由子請求訪問。
從某種意義上來說也可以增強一定的安全性。
網站開發_網站製作_網站維護_網店製作_網店安裝_商城製作_手機軟體_企業網站_辦公軟體_QQ:471226865
點點更健康
ActionName的意思就是為Action定義一個新的名稱
[ActionName("NewTest")]
public ActionResult Test()
{
return Content("Hello");
}
如果是這樣修改後,那麼調用的時候就不是Test了,而是NewTest
<% Html.RenderAction("NewTest", "ChildTest"); %>