2016-05-13 80 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; } 
相關問題