ASP MVC在部分视图中定义部分

正如标题所述,我想在局部视图中定义一个部分。

我测试过的代码如下:

控制器:

public ActionResult Test() { return View(); } public ActionResult PartialTest() { return PartialView("_PartialTest"); } 

Test.cshtml:

 @{ ViewBag.Title = "Test"; } 

Test

@Html.Action("PartialTest")

_PartialTest.cshtml:

 

partial Test

@section scripts { $(document).ready(function() { alert("Test"); }); }

将部分scripts放在Test.cshtml中可以正常工作,因此问题不在布局中。

有人知道怎么做吗?

部分视图不支持@section标记。 您应该在引用局部视图的视图中添加它们。 有关更多信息,请参阅此问题: 使用Razor View Engine从部分视图ASP.NET MVC 3中将内容注入特定部分 。

它基本上归结为这样一个事实,即引用partial的主视图应该负责包含Javascript,而不是部分视图本身。

我知道这个问题已经过时了,但对于那些可能仍然想知道的人(就像我一样):

您可以通过将部分视图中的@section scripts { }部分更改为以下内容来解决此问题:

 @using (Html.BeginScriptContext()) { Html.AddScriptBlock( @ 

这将允许您在局部视图中使用脚本并实现类似于窗口小部件的结构。 希望这可以帮助!