如何从局部视图将 JavaScript 渲染到 MasterLayout 部分? [英] How to render JavaScript into MasterLayout section from partial view?

查看:22
本文介绍了如何从局部视图将 JavaScript 渲染到 MasterLayout 部分?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给定 MVC3 和 Razor 引擎,我得到了

Given MVC3 and Razor engine, I got

_MasterLayout.cshtml

@RenderSection("JavaScript", required: false)
..
..
@RenderBody()
..

View.cshtml,在 _ViewStart.cshtml 中定义了 _MasterLayout.cshtml

View.cshtml with _MasterLayout.cshtml defined in _ViewStart.cshtml

..
@Html.RenderAction("PartialView", "PartialController")
..

PartialView.cshtml

..
@section JavaScript
{
........
}
..

如何确保来自 Partial View 的 JavaScript 最终出现在主布局部分?

How can I make sure that JavaScript from Partial View ends up in the Master Layout section?

上述情况不起作用,因为局部视图没有定义主布局.另一方面,视图确实具有定义了 RenderSection 的布局.如果我将部分 JavaScript 从局部视图移动到视图,Razor 知道将其呈现到何处.但是,由于局部视图没有布局,它不知道如何处理 JavaScript 部分,因此不会在任何地方呈现它.

The above scenario doesn't work because the partial view doesn't have a master layout defined. View, on the other hand, does have Layout with RenderSection defined. If I move section JavaScript from Partial View to View, Razor knows where to render it to. But, since partial view doesn't have a layout, it doesn't know what to do with section JavaScript and thus doesn't render it anywhere.

推荐答案

我不相信 Partial View 可以设置要在布局页面中使用的部分 :(

I don't believe a Partial View can set sections to be used in the layout page :(

似乎没有很好的解决方案 - 您可以包含两个部分(一个用于脚本,一个用于内容):

It looks like there are no nice solutions to this - you could include two partials (one for script, one for content):

<script stuff>
@Html.RenderAction("PartialViewScripts", "PartialController")
</script stuff>
<body stuff>
@Html.RenderAction("PartialView", "PartialController")
</body stuff>

这篇关于如何从局部视图将 JavaScript 渲染到 MasterLayout 部分?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆