2014-12-03 65 views
0

WCF 서비스에서 뷰를 부분 뷰로 채우는 데 문제가 있습니다. 모든 것이 잘 작동하고 모델에 필요한 데이터가 포함되어 있지만 어떻게 든이 오류가 계속 발생합니다. ProduktDto의 가치를 분명히 볼 수 있으므로 null이 아니지만 여전히 그렇다고 말합니다.WCF 서비스의 속성 값에 System.ArgumentNullException이 발생하여 NULL이 아니라는 것을 나타냅니다.

<add name="SpelDatabasContainer" connectionString="metadata=res://*/SpelDatabas.csdl|res://*/SpelDatabas.ssdl|res://*/SpelDatabas.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=SpelAffarenDatabas;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

havent 한 심각한 인터넷 검색 후 이것에 대한 해답을 발견

내가 여기 포함하도록 오류가 ConnectionString을 될 수 있다고 들었습니다. 다음 뷰의 코드입니다

@model List<SpelAffarWCF.ProduktDto> 
<table class="table table-responsive"> 
<tr> 
    <th>Id</th> 
    <th>Namn</th> 
    <th>Beskrivning</th> 
    <th>Utgivningsår</th> 
    <th>MP</th> 
    <th>SP</th> 
    <th>Pris</th> 
    <th>Utgivare</th> 
    <th>Konsoler</th> 
    <th>Genres</th> 
    <th>Aktiv order antal</th> 
</tr> 
@foreach (var spel in Model) 
{ 
    <tr> 
    <td title="Spelets Id">@spel.Id</td> 
    <td title="Spelets jävla namn">@spel.Namn</td> 
    <td title="@spel.Beskrivning">För musen över mig..</td> 
    <td title="När det släpptes">@spel.Utgivningsår</td> 
    <td title="Multipläjer">@Html.CheckBox("checkboxMP", spel.Multiplayer)</td> 
    <td title="Singlpläjer">@Html.CheckBox("checkboxSP", spel.Singleplayer)</td> 
    <td title="Spelet kostar faktiskt såhär mycket">@spel.Pris</td> 
    <td title="Id: @spel.Utgivare.Id, Spel: @spel.Utgivare.Produkter.Count()">@Html.ActionLink(spel.Utgivare.Namn, "EditPublisher", new { id = spel.Utgivare.Id })</td> 
    @if (spel.Konsoler.Count() > 0) 
    { 
     <td> 
      @foreach (var konsol in spel.Konsoler) 
      { 
       <p class="cellEntity">@konsol.Namn</p> 
      } 
     </td> 
    } 
    else 
    { 
     <td>Ingen.</td> 
    } 
    @if (spel.Genres.Count() > 0) 
    { 
     <td> 
      @foreach (var genres in spel.Genres) 
      { 
       <p class="cellEntity">@genres.Namn</p> 
      } 
     </td> 
    } 
    else 
    { 
     <td>Ingen genre.</td> 
    } 
    @if (spel.SpelPerOrders.Count() > 0) 
    { 
     <td> 
      @foreach (var spelOrder in spel.SpelPerOrders) 
      { 
       <p class="cellEntity">Id: @spelOrder.OrderId, @spelOrder.Antal st</p> 
      } 
     </td> 
    } 
    else 
    { 
     <td>Finns inte i någon order.</td> 
    } 
    <td> 
     <input type="button" value="Lägg till i kundvagn" onclick="AddToCart(@spel.Id)" /> 
    </td> 
    </tr> 
    } 
    </table> 
+0

'Model'이 null이 아니면, 1이 될 수 있습니다.'Model' 콜렉션 내에있는 null 오브젝트, 또는 2. 콜렉션의'spel' 오브젝트 중 하나는 널 (null)'Konsoler' 특성을가집니다. –

+0

항상 @ spel.Pris에서 충돌이 발생합니다. 그렇지 않으면 다음 속성에 해당 위치가 제거되므로 7 번째 속성에서 항상 충돌합니다 ... 디버깅 할 때 모든 속성이 null이 아닌 것을 볼 수 있습니다. .. –

+0

그것은 확실히 이상합니다 ...'spel.Utgivare'와'spel.Utgivare.Produkter'는 둘 다 null이 아닌가요? –

답변

1

오류는이 spel.Utgivare.Produkter.Count() 또는 spel.Konsoler.Count() 전화 중 하나입니다 나타냅니다는; Linq Count 확장 메서드의 매개 변수의 이름은 source입니다.

+1

젠체하는 사람의 젠체하는 사람! –