2015-04-11 17 views
11

DÜZENLEME: SE'de bulunan diğer Çok Kullanılmayan Derlemeyle ilgili sorunları kontrol ettim ve denedim, ancak yerleşik olması gerekenlerle ilgili pek bir şey bulamadım. montaj (System.Collections.Generic.List<t>). Bu, el ile eklemeyi veya referansı kaldırmayı zorlaştırır.Montaj Not: Jilet görünümünde foreach döngüsünde başvurulan derleme hatası

Bir API yanıtından bir PartialView oluşturmaya çalışıyorum. Yanıtın doğru ve iyi oluşturulduğunu doğruladım, nesnelerim doğru şekilde oluşturuluyor, ancak Kısmi Görünüm oluşturduğumda, bir Derleme Hatası gösteriliyor. Burada

@using OpsComponent 
@model OpsComponent.ComponentData 

<div class="row"> 
    <div class="col-md-6"> 
     <ul class="list-group"> 
      @foreach (Data metric in Model.Metrics) 
      { 
       <li class="list-group-item"> 
        <span class="badge">@metric.Value</span> 
        @metric.Key<br/> 
       </li> 
      } 

     </ul> 
    </div> 
</div> 

Ve

Veri sınıf tanımı vardır: İşte
Compiler Error Message: CS0012: The type 'System.Collections.Generic.List`1<T0>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Collections, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. 

Jilet görünümüdür Durumu Bir enum olan

public class Data 
    { 
     public string Key { get; set; } 
     public string Value { get; set; } 
     public string Source { get; set; } 
     public Status Status { get; set; } 

    } 

. Model nesnesinin PartialView'a aktarılmadan önce doğru ve iyi oluşturulduğunu hata ayıklama bölümünde kontrol ettim, ancak doğru bir düzen yerine Sunucu Hatası ekranını ve 500 yanıtı alıyorum. tamlığı için hat @foreach (Data metric in Model.Metrics)

Eylem kodu ile

:

public ActionResult ComponentDetail(string id) 
     { 
      var data = Client.GetComponentData(id.DecodeBase64ToString()); 
      var partialViewResult = PartialView("_ComponentDetail", data); 
      return partialViewResult; 
     } 
+0

olası kopyası [Tür, başvurulan bir derlemede değil, neden nasıl bulunur?] (Http://stackoverflow.com/questions/20660999/the-type-is-defined-in-an -sürüm-değil-başvuru-nasıl-bulmak-neden-neden) –

+0

@ Bjørn-RogerKringsjå Bir açıklama ekleyerek ekledim, ama burada diğer birçok "Referans" SE ile karşılaştırıldığında zorluk düşünüyorum Asıl soru şu: a) ReSharper'ın "sembolü çözememesi" hatalarını (R # kullanarak değil), veya b) kullanıcı kitaplıklarını, yerleşik türler listesinin aksine, List agc93

+0

System.Collections.Generic' kullanarak? –

cevap

30

ben bunu çözmüş olmasının ve bu şeytani basitti. Bunun neden gerekli olduğunu hala bilmiyorum, ancaketiketinin web.config'a eklenmesi bu sorunu çözmüş görünüyor. Eklediğim etiketi <compilation> etiketi altında ve aşağıdaki gibi:

<assemblies> 
    <add assembly="System.Collections, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
</assemblies> 

Basit, ama hatayı çözmüştür ve görünümü artık şekilde oluşturuluyor.

+0

Benim için çalış. Teşekkürler ! –

+1

'' ek açıklamasını 'ile çevrelemeniz gerektiğine dikkat edin. Bunun gibi : ' < " Sürüm = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a System.Collections" montaj = add /> '' –

İlgili konular