首页 > 解决方案 > 使用 [Authorize] 时的 System.Web.HttpException

问题描述

我面临一个非常奇怪的问题,我无法解决。我有这个按钮 onclick 我转到需要使用 [Authorize] 的控制器操作方法,当我使用 [Authorize] 时出现以下错误。

以下部分已定义但尚未为布局页面“~/Views/Shared/_Layout.cshtml”呈现:“脚本”。

System.Web.HttpException

但是,当我不使用 [Authorize] 时,它可以正常工作。为什么它会这样?任何帮助将不胜感激。

[Authorize]
public async Task<ActionResult> Calendar(int id, string start, string end)
{
    //code
}

标签: c#asp.net-mvcrazormodel-view-controllerasp.net-authorization

解决方案


在您的~/Views/Shared/_Layout.cshtml页面上,您可能有一个必须包含在每个视图中的必需部分,它将是这样的:

@RenderSection("scripts")

您需要将其更改为:

@RenderSection("scripts", required: false)

这意味着该部分在使用您的布局页面的页面上是可选的。

旧但仍然相关:

https://weblogs.asp.net/scottgu/asp-net-mvc-3-layouts-and-sections-with-razor


推荐阅读