在视图中,我正在调用一个返回视图的操作
查看:
Html.RenderAction("Read", "Stats", new { Module = statsModel.Module, Name = statsModel.Name });
控制器:
public ActionResult Read(Module module, string name, bool showStatsItems = true)
{
eRPortalEntities db = new eRPortalEntities();
StatsPanelService service = new StatsPanelService(db, UserID);
StatsPanelViewModel spv = service.Read(module, name);
spv.ShowStatsItems = showStatsItems;
return View("StatsPanel", spv);
}
这很遗憾地导致我的一些Bootstrap功能中断。如下拉菜单和模态不切换。
如果我让控制器返回一个PartialView,那么一切都按预期工作
return PartialView("StatsPanel", spv);
我不是在寻找我的引导程序停止工作的具体原因,而是更多地解释......为什么这会引起一般问题?
答案 0 :(得分:2)
除非您明确指定Layout
为null,否则当您执行return View("StatsPanel")
时,Razor视图引擎将呈现布局内的视图内容(_Layout.cshtml),类似于您呈现页面的方式。这意味着,它将包括所有这些脚本和Css再次在头部。这可能是它弄乱你的标记的原因。
在您的用例中使用PartialView()
方法似乎是合适的。如果您仍想使用View()
方法,则可以在StatsPanel.cshtml
视图中明确将布局定义为null
@{ Layout = null; }