Frage

Ich bin versucht, eine stark typisierte Ansicht mit ein „MVC View User Control“ zu erstellen, die mit Html.RenderPartial gerendert wird (). Die Spitze meiner ascx Datei sieht wie folgt aus:

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

Es gibt nichts anderes auf dieser Seite zur Zeit.

Wenn ich die app ausführen und laden Sie die Seite, die dieses Steuerelement macht, ich die folgende Fehlermeldung erhalten:

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

So, dann habe ich es vereinfacht:

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

Und dann, falls es erforderlich voll qualifiziert sein:

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

erhalten Jedesmal, wenn ich den gleichen Fehler (Typ ersetzt). was mache ich hier falsch? Ich bin auf dem .NET 3.5 mit ASP.NET MVC 1.0 RTM.

War es hilfreich?

Lösung

Ich habe es funktioniert. Ich folgte den Anweisungen von http : //www.codewrecks.com/blog/index.php/2009/04/05/could-not-load-type-systemwebmvcviewpage/ und dass der Trick für mich getan hat. Ich sollte anmerken, dass ich auch als von 2010.03.17 zunächst auf die ASP.NET MVC 2.0 RC aktualisiert. Das Problem bestand für mich nach wie vor, bis ich die Anweisungen auf dieser Seite eintragen. Ich bin ich nicht sicher, ob ein neues MVC-Projekt tut dies für Sie jetzt oder nicht.

Die Lösung, falls die referenzierte Seite weggeht, war eine Web.config meiner Ansichten Verzeichnis hinzuzufügen, und setzt diese in ihm:

<?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>

soll ich auch beachten, dass für MVC 2.0 Sie benötigen die Version # 's in der Config-Dateien zu bearbeiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top