2016-05-13 113 views
0

在查看我打电话,返回一个搜索当您返回View时应该是PartialView会发生什么?

查看一个动作:

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); 
    } 

这不幸导致一些我的引导功能打破。如下拉菜单和模式不切换。

相反,如果我有控制器返回PartialView,一切正常

return PartialView("StatsPanel", spv); 

我不是寻找一个特定的原因,我的引导停止工作,但更多的解释...为什么会这导致一般问题?

回答

2

除非您明确指定Layout为空,否则当您执行return View("StatsPanel")时,Razor视图引擎将呈现Layout(_Layout.cshtml)中的视图内容,类似于您如何正常渲染页面。这意味着,它将再次在头部包含所有这些脚本& Css。这可能是它搞乱你的标记的原因。

使用PartialView()方法似乎适合您的使用情况。如果您仍想使用View()方法,您可以在您的StatsPanel.cshtml视图中明确定义布局为空。

@{ Layout = null; } 
相关问题