ASP.NET MVC fortement typées Vue partielle, ne donne pas pu charger une erreur de type
-
20-09-2019 - |
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.
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.