ChildActionOnly的目的主要就是讓這個Action不經過直接在地址欄輸入地址來訪問,而是須要經過RenderAction來調用它。javascript
<a href="javascript:;" onclick="javascript:document.getElementById('show').style.display=''">java
調用子操做</a>安全
<div id="show" style="display: none">網站
<% Html.RenderAction("Test", "ChildTest"); %></div>ui
public ActionResult Index()ip
{開發
return View();get
}it
[ChildActionOnly]io
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"); %>