2010-03-17 19 views
17

Html.RenderPartial() kullanılarak oluşturulmuş bir "MVC View Kullanıcı Denetimi" ile güçlü yazılan bir görünüm oluşturmaya çalışıyorum. Benim ascx dosyamın üst kısmı şu şekilde gözüküyor: ASP.NET MVC Strongly Typed Kısmi Görünümü, hata türünü yüklenemedi hatası veriyor

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

Bu sayfada başka bir şey yok.

Ben app yürütmek ve bu kontrol icra sayfasını yüklediğinizde, aşağıdaki hatayı alıyorum:

Yani o zaman bunu basitleştirilmiş
Could not load type 'System.Web.Mvc.ViewUserControl<System.Collections.IEnumerable<string>>'. 

:

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

Ve sonra, sadece tam olarak gerekli olması durumunda, aynı hatayı aldığımda (ikame türü) her zaman bir kez aldığımda:

. burada ne yapıyorum? ASP.NET MVC 1.0 RTM ile .NET 3.5 kullanıyorum.

cevap

27

Çalışıyorum. Talimatları http://www.codewrecks.com/blog/index.php/2009/04/05/could-not-load-type-systemwebmvcviewpage/'dan takip ettim ve bu benim için hile yaptı. Unutmam gerekir ki, önce ASP.NET MVC 2.0 RC'ye yükseltilmiştim. Sorun o sayfada bulunan talimatları takip edene kadar hala benim için devam etti. Yeni bir MVC projesinin bunu sizin için yapıp yapmadığına emin değilim.

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

Ben de size gereken MVC 2.0 için dikkat etmelidir:

başvurulan sayfa uzağa gider durumda çözüm, benim Görüntüleme dizinine bir Web.config ekleyin ve içine bu koymak oldu config içindeki # versiyonunu güncellemek için

+0

Teşekkür ederiz! Web.config görünüm klasörü üzerinden kopyalamayı tamamen unuttum. Hataların, bunun yanlış olduğu daha açık olmasını diliyorum. – DavGarcia

+0

Vay, aynı sorun burada. Web.config - makinemde çalıştım - yapı yazımın bir parçası değildi. –

+0

Sadece bir MVC2 uygulaması oluşturdum ve web.config dosyasını bu Views dizininden kopyaladım. Teşekkürler. –