2013-06-10 15 views
5

Viene visualizzato l'errore "deve derivare da WebViewPage" quando si chiama PartialView all'interno di un'altra cartella, invece della cartella Viste.PartialView deve derivare dall'errore WebViewPage

errore

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

Gerarchia

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

risposta

13

file è necessario mettere un web.config nella directory principale di questa cartella personalizzata. Lo stesso di ~/Views/web.config. All'interno di questo web.config si trova una sezione che indica il tipo di pagine 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> 

Notate come il pageBaseType è impostato su System.Web.Mvc.WebViewPage.

In alternativa si potrebbe aggiungere il seguente alla parte superiore del vostro punto di vista Razor:

@inherits System.Web.Mvc.WebViewPage 
+0

mio problema solved.Thank molto per la vostra risposta. – user2282567

+0

Ciao @Darin Dimitrov, ho provato a proporre la soluzione. In realtà ho creato Area. Ho aggiunto un file web.config nella mia Area View Folder ma ancora senza fortuna. La soluzione alternativa funziona ma sai che è difficile da aggiungere per ogni vista. – mmushtaq

Problemi correlati