Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 是否可以通过URL拒绝对PartialViewResult操作的访问_Asp.net Mvc 3_Security_Action - Fatal编程技术网

Asp.net mvc 3 是否可以通过URL拒绝对PartialViewResult操作的访问

Asp.net mvc 3 是否可以通过URL拒绝对PartialViewResult操作的访问,asp.net-mvc-3,security,action,Asp.net Mvc 3,Security,Action,我试图拒绝访问返回PartialViewResult的操作;但这似乎是不可能的。如果我用NonAction属性标记action方法,页面将不会呈现,如果我没有,则可以使用URL获取该部分视图。 假设我在\u Layout.cshtml中有这个: <section role="navigation"> @Html.Partial("PageParts/Sidebar") @RenderSection("SidebarContents", required: false)

我试图拒绝访问返回
PartialViewResult
的操作;但这似乎是不可能的。如果我用
NonAction
属性标记action方法,页面将不会呈现,如果我没有,则可以使用URL获取该部分视图。
假设我在
\u Layout.cshtml
中有这个:

<section role="navigation">
    @Html.Partial("PageParts/Sidebar")
    @RenderSection("SidebarContents", required: false)
</section>
这是
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

@Html.Partial("PageParts/Sidebar/Userinfo")
@{Html.RenderAction("getNavigation", "PageSemantics");}
@model NavigationModel
<nav id="main-nav">
    [... Some code to create Navigation ...]
</nav>
@model导航模型
[…创建导航的一些代码…]

除了可以通过URL访问
~/PageSemantics/getNavigation
之外,此设置工作正常。 在保持此设置正常运行的同时,是否有任何方法拒绝通过URL访问
getNavigation
操作?

尝试放置属性

[ChildActionOnly]
在您的
getNavigation()
方法上尝试放置属性

[ChildActionOnly]

在您的
getNavigation()
方法上,这将返回一条类似
的消息,操作“getNavigation”只能通过子请求访问。
是否可以返回404?我刚刚发现谢谢,这将返回一条类似于
的消息,操作“getnavigation”只能通过子请求访问。
是否可以返回404?我刚刚找到