C# 以下部分已定义,但尚未呈现在布局页面“~/Views/Shared/_Layout.cshtml”;

C# 以下部分已定义,但尚未呈现在布局页面“~/Views/Shared/_Layout.cshtml”;,c#,asp.net-mvc-4,razor,C#,Asp.net Mvc 4,Razor,我有一个行动结果: [EncryptedActionParameter] [CheckExternalUserRegisterSigned] public ActionResult ExpedienteIIT(int idExpediente) { ExpedienteContainerVM model = this.GetExpedienteVMByIdExpediente(idExpediente); return View("ExpedienteIIT", model);

我有一个行动结果:

[EncryptedActionParameter]
[CheckExternalUserRegisterSigned]
public ActionResult ExpedienteIIT(int idExpediente)
{
    ExpedienteContainerVM model = this.GetExpedienteVMByIdExpediente(idExpediente);
    return View("ExpedienteIIT", model);
}
权宜之计观点:

_Layout.cshtml:

因此,当我返回视图时,出现以下错误:

我尝试放置console.logs以查看视图是否已渲染但未渲染

好的,错误在这里:

@model PortalSOCI.WEB.ViewModels.IIT.ExpedienteContainerVM


    @{
        ViewBag.Title = String.Format(PortalSOCI.WEB.Resources.ExpedienteIIT.TituloExpedienteIIT, Model.Expediente.NumeroExpediente);
    }

    @section JavaScript  /// <-------------------- ERROR
    {
        @Html.Raw(ViewBag.message)
    @
@model PortalSOCI.WEB.ViewModels.IIT.enquipmeteContainervm
@{
ViewBag.Title=String.Format(PortalSOCI.WEB.Resources.enventiit.tituloEnventiit,Model.enventile.numerioExpedient);
}

@节JavaScript//您需要将缺少的节放入
视图中。根据错误消息,缺少的部分是
JavaScript

代码示例,将其放在视图的底部:

@section JavaScript
{
    // put javascript here
}
编辑:

感谢您提供视图的代码示例。布局页面中JavaScript部分的定义方式与视图中JavaScript部分的包含方式不匹配

要解决此问题,请执行以下任一操作:

  • \u布局
    页面中,将
    @RenderSection(“脚本”,必填项:false)
    更改为
    @RenderSection(“JavaScript”,必填项:false)
    ,或
  • it
    视图中,将
    @sectionjavascript
    更改为
    @sectionscripts

重要的是两者应该匹配。

您需要将缺少的部分放在
视图中。根据错误消息,缺少的部分是
JavaScript

代码示例,将其放在视图的底部:

@section JavaScript
{
    // put javascript here
}
编辑:

感谢您提供视图的代码示例。布局页面中JavaScript部分的定义方式与视图中JavaScript部分的包含方式不匹配

要解决此问题,请执行以下任一操作:

  • \u布局
    页面中,将
    @RenderSection(“脚本”,必填项:false)
    更改为
    @RenderSection(“JavaScript”,必填项:false)
    ,或
  • it
    视图中,将
    @sectionjavascript
    更改为
    @sectionscripts
重要的是两者应该匹配。

编辑: 读了你的代码后,我觉得

@RenderSection("scripts", required: false)
应该是

@RenderSection("JavaScript", required: false)
另一件我认为会给您带来麻烦的事情是,您在主体中定义了“JavaScript”部分。这意味着,如果您的任何视图都忘记添加它

@section JavaScript
{
    @Html.Raw(ViewBag.message)
}
您将得到一个
节JavaScript not defined
错误。在您的情况下,感觉节的定义应该在
\u layout.cshtml

此错误很可能意味着您已经定义了JavaScript部分,但没有在任何地方呈现它。 您需要在layout.cshtml中的某个地方调用
@RenderSection(“JavaScript”)

将允许您创建一个名为“JavaScript”的节,但要将此节的内容“打印”到输出HTML文件(将发送到客户端),您需要调用
@RenderSection(“JavaScript”)
。该部分的内容将打印在调用
RenderSection
的位置。

编辑: 读了你的代码后,我觉得

@RenderSection("scripts", required: false)
应该是

@RenderSection("JavaScript", required: false)
另一件我认为会给您带来麻烦的事情是,您在主体中定义了“JavaScript”部分。这意味着,如果您的任何视图都忘记添加它

@section JavaScript
{
    @Html.Raw(ViewBag.message)
}
您将得到一个
节JavaScript not defined
错误。在您的情况下,感觉节的定义应该在
\u layout.cshtml

此错误很可能意味着您已经定义了JavaScript部分,但没有在任何地方呈现它。 您需要在layout.cshtml中的某个地方调用
@RenderSection(“JavaScript”)



将允许您创建一个名为“JavaScript”的节,但要将此节的内容“打印”到输出HTML文件(将发送到客户端),您需要调用
@RenderSection(“JavaScript”)
。该部分的内容将打印在调用
RenderSection
的位置。

您能否向我们展示您的
Layout.cshtml
conventiit.cshtml
?这么长的文件…:(你可以去掉所有不相关的东西。试试OJ Raqueño的答案或我的答案。如果不起作用,试着提供文件(即使它们很长)好的,给我一个话题,但是,我有点困惑你为什么这么做?JavaScript部分{Html.Raw(ViewBag.message)}为什么你的javascript代码包含在ViewBag中?你能给我们更多关于你缩进该javascript部分的信息吗?你能给我们看看你的
Layout.cshtml
conventiit.cshtml
?这么长的文件…:(你可以去掉所有不相关的东西。试试OJ Raqueño的答案或我的答案。如果不起作用,试着提供文件(即使它们很长)好的,给我一个话题,但是,我有点困惑你为什么这么做?JavaScript部分{Html.Raw(ViewBag.message)}为什么你的javascript代码包含在ViewBag中?你能给我们更多关于你缩进该javascript节的信息吗?我以为你的代码会定义该节,不是吗?我误解了什么吗?我以为你的代码会定义该节,不是吗?我误解了什么吗?你的意思是_ayout.cshtml?我误解了,并且没有t定义:“JavaScript”。:在定义了节之后,你调用了它,对吗?你是说_ayout.cshtml?我定义了,而节没有定义:“JavaScript”。:在定义了节之后,你调用了它,对吗?