2013-06-10 11 views
5

Otrzymuję komunikat "musi wynikać z WebViewPage" podczas wywoływania PartialView w innym folderze niż w folderze Widoki.PartialView musi pochodzić z błędu WebViewPage

błędów

System.InvalidOperationException: The view at '~/Modules/HtmlContent/_HtmlContent.cshtml' must derive from WebViewPage, or WebViewPage<TModel>. 
PartialView adding 

Page.cshtml

<div class="side"> 
    @Html.Action("Side") 
</div> 

HomeController.cs

public ActionResult Side() 
{ 
    return PartialView("~/Modules/HtmlContent/_HtmlContent.cshtml"); 
} 

Hierarchia

Modules 
| 
+-- HtmlContent 
|    | 
|    +-- _HtmlContent.cshtml 
| 
Views 
    | 
    +-- Home 
    |  | 
    |  +-- Index.cshtml 
    |  | 
    |  +-- Page.cshtml 
    | 
    +-- Shared 
      | 
      +-- Layout.cshtml 
      | 
      +-- _Partial.cshtml 

Odpowiedz

13

pliku Trzeba położyć web.config w katalogu głównym tego niestandardowego folderu. To samo co ~/Views/web.config. Wewnątrz tej web.config znajdziesz sekcję, która wskazuje typ stron Razor:

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Optimization"/> 
     <add namespace="System.Web.Routing" /> 
     </namespaces> 
    </pages> 
</system.web.webPages.razor> 

zauważyć, jak pageBaseType jest ustawiony na System.Web.Mvc.WebViewPage.

Ewentualnie można dodać następujące szczytu swoich poglądów Razor:

@inherits System.Web.Mvc.WebViewPage 
+0

mój problem solved.Thank bardzo za odpowiedź. – user2282567

+0

Witam @ Darin Dimitrov, próbowałem cię zaproponował rozwiązanie. Właściwie to stworzyłem obszar. Dodałem plik web.config w folderze widoku obszaru, ale wciąż nie mam szczęścia. Alternatywne rozwiązanie działa, ale wiesz, że trudno je dodać do każdego widoku. – mmushtaq

Powiązane problemy