Question

Je cherche à créer une vue fortement typé avec un « MVC View User Control » qui est rendu à l'aide Html.RenderPartial (). Le haut de mon dossier ascx ressemble à ceci:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.Collections.IEnumerable<string>>" %>

Il n'y a rien d'autre sur cette page, actuellement.

Quand j'exécute l'application et chargez la page qui rend ce contrôle, je reçois l'erreur suivante:

 Could not load type 'System.Web.Mvc.ViewUserControl<System.Collections.IEnumerable<string>>'.

Alors, je simplifié il:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<String>" %>

Et puis, au cas où il devait être qualifié:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.String>" %>

Chaque fois que je reçois la même erreur (type substitution). ce que je fais mal ici? Je suis sur .NET 3.5 avec ASP.NET MVC 1.0 RTM.

Était-ce utile?

La solution

Je l'ai travail. J'ai suivi les instructions de : //www.codewrecks.com/blog/index.php/2009/04/05/could-not-load-type-systemwebmvcviewpage/ et qui a fait l'affaire pour moi. Je dois souligner que je également surclassé dans ASP.NET MVC 2.0 RC au 3/17/2010 premier. Le problème a persisté pour moi encore jusqu'à ce que je suivais les instructions sur cette page. Je ne sais pas si un nouveau projet MVC fait pour vous maintenant ou non.

La solution, dans le cas où la page référencée va, était d'ajouter un web.config à mon répertoire de vues, et mettre cela en elle:

<?xml version="1.0"?>
<configuration>
  <system.web>
  <httpHandlers>
    <add path="*" verb="*"
      type="System.Web.HttpNotFoundHandler"/>
  </httpHandlers>

<!--
    Enabling request validation in view pages would cause validation to occur
    after the input has already been processed by the controller. By default
    MVC performs request validation before a controller processes the input.
    To change this behavior apply the ValidateInputAttribute to a
    controller or action.
-->
<pages
    validateRequest="false"
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <controls>
    <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
  </controls>
</pages>
</system.web>

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
  <remove name="BlockViewHandler"/>
    <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
</handlers>
</system.webServer>
</configuration>

Je tiens également à noter que pour MVC 2.0, vous devez mettre à jour la version # 's de la config.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top