1
我試圖拒絕訪問一個操作返回PartialViewResult
;但似乎是不可能的。如果我使用NonAction
屬性標記動作方法,頁面將不會呈現,如果我不這樣做,則可以使用URL獲取該部分視圖。
假設我有這樣的_Layout.cshtml
:是否有可能通過URL拒絕訪問PartialViewResult操作
<section role="navigation">
@Html.Partial("PageParts/Sidebar")
@RenderSection("SidebarContents", required: false)
</section>
,這是PageParts/Sidebar.cshtml
:
@Html.Partial("PageParts/Sidebar/Userinfo")
@{Html.RenderAction("getNavigation", "PageSemantics");}
,這是PageSemanticsController.cs
:
public class PageSemanticsController : Controller {
public PartialViewResult getNavigation() {
NavigationModel nm = new NavigationModel();
return PartialView("PageParts/Sidebar/Navigation", nm);
}
}
終於這是~/Views/Shared/PageParts/Sidebar/Navigation.cshtml
:
@model NavigationModel
<nav id="main-nav">
[... Some code to create Navigation ...]
</nav>
此設置工作正常,除了~/PageSemantics/getNavigation
可通過URL訪問。 有沒有什麼方法可以通過URL拒絕對getNavigation
動作的訪問,同時保持這個設置的工作?
謝謝,這將返回一個消息像'動作「getnavigation」是隻能由孩子request.' 是否有可能返回一個404? – Achilles
我剛剛發現http://stackoverflow.com/questions/7888121/how-to-prevent-certain-internal-routes-from-being-accessed-by-the-user –
謝謝,有一種方法可以返回404線程:) – Achilles