我有这个ActionResult:
[EncryptedActionParameter]
[CheckExternalUserRegisterSigned]
public ActionResult ExpedienteIIT(int idExpediente)
{
ExpedienteContainerVM model = this.GetExpedienteVMByIdExpediente(idExpediente);
return View("ExpedienteIIT", model);
}
ExpedientIIT查看: https://jsfiddle.net/pq16Lr4q/
_Layout.cshtml: https://jsfiddle.net/1ksvav43/
所以当我返回视图时,我收到了这个错误:
我尝试将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)
@
你能帮我吗?
答案 0 :(得分:2)
您需要将遗失的部分放在ExpedienteIIT
视图中。根据错误消息,该缺失部分为JavaScript
。
代码示例,将其放在视图的底部:
@section JavaScript
{
// put javascript here
}
修改强>
感谢您提供视图的代码示例。布局页面中的JavaScript部分如何定义以及如何将其包含在视图中之间存在不匹配。
要解决此问题,请执行以下任一操作:
_Layout
页面中,将@RenderSection("scripts", required: false)
更改为@RenderSection("JavaScript", required: false)
,或ExpedienteIIT
视图中,将@section JavaScript
更改为@section scripts
重要的是两者应该匹配。
答案 1 :(得分:1)
编辑: 阅读完代码后,我觉得
@RenderSection("scripts", required: false)
应该是
@RenderSection("JavaScript", required: false)
另一件我认为会给你带来麻烦的事情就是你定义了你的#34; JavaScript&#34;身体的一部分。这意味着如果您的任何视图忘记添加
@section JavaScript
{
@Html.Raw(ViewBag.message)
}
您将收到Section JavaScript not defined
错误。在您的情况下,感觉该部分的定义应该在_layout.cshtml
。
此错误很可能意味着您已定义JavaScript部分但未在任何位置呈现它。
您需要在layout.cshtml中的某处调用@RenderSection("JavaScript")
@section JavaScript
{
}
将允许您创建一个名为&#34; JavaScript&#34;的部分,但实际上&#34; print&#34;将此部分的内容输出到输出HTML文件(将发送到客户端),您需要调用@RenderSection("JavaScript")
。该部分的内容将打印在RenderSection
的电话所在位置。