2017-04-07 2 views
0

In einer MVC-Anwendung in der Steuerung verwende ich Entity Framework und LINQ. Ich speichere 10 Datensätze in einer Variablen und verbinde sie dann mit dem Modell. Aber wenn es keine Datensätze gibt, bekomme ich FehlerWie NULL-Ausnahme behandeln, wenn Modell NULL ist, wie in Ansicht in Mvc umzugehen?

Index war außerhalb des Bereichs. Muss nicht negativ sein und weniger als die Größe der Sammlung.

Während ich behandelt Null Ausnahme in Sicht. Ich erhalte einen Fehler bei der Kompilierung

Initialisierung einer implizit typisierten Variablen mit einem Array-Initialisierer nicht möglich.

Ausblick:

function initMap() { 
      var labels = '12345678910'; 
      var labelIndex = 0; 

      @if (Model != null) 
        { 
         var myLatLng = { lat: @Model[0].latitude.ToString(), lng: @Model[0].longitude.ToString() }; 
        } 

      else 
        { 
          var myLatLng = { lat:0, lng:0};//Bharat Seva Ashram 
        } 

Controller:

List<AssetTrackerViewModel> model = new List<AssetTrackerViewModel>(); 
/// PIR 1 //RAD:DN 
try 
{ 
    WebRequest req = WebRequest.Create(@"https://url"); 
    req.Method = "GET"; 
    req.Headers["Authorization"] = "Basic " + "pwd=="; 
    HttpWebResponse resp = req.GetResponse() as HttpWebResponse; 
    var encoding = resp.CharacterSet == "" ? Encoding.UTF8 : Encoding.GetEncoding(resp.CharacterSet); 
    using (var stream = resp.GetResponseStream()) 
    { 
     var reader = new StreamReader(stream, encoding); 
     var responseString = reader.ReadToEnd(); 

     **//here "items" im getting null/empty** 
     var items = Pirs.Where(a => !a.dataFrame.EndsWith("AAAAAAAAAAA=")) 
             .GroupBy(a => a.dataFrame.Substring(a.dataFrame.Length - 12)) 
             .Select(g => g.First()) 
             .OrderByDescending(a => a.timestamp) 
             .Take(10); 

     foreach (var item in items) 
     { 
      byte[] data = Convert.FromBase64String(item.dataFrame.ToString()); 
     } 
    } 
} 
+3

ist wie Sie sonst mit nichts tun ... eine bedingte setzen oder eine Wächterklausel an Ort und Stelle. –

+0

Was passiert, um "Gegenstände" zu sehen? – Krishna

+0

Anzeigen von Elementen, die an ein Modell übergeben werden. –

Antwort

2

Das Problem ist, dass der Code unten als Razor Code erkannt wird, während Sie wahrscheinlich erwartet, dass es Javascript-Code zu sein :

var myLatLng = { lat: @Model[0].latitude.ToString(), lng: @Model[0].longitude.ToString() }; 

einfach @: vor den Anweisungen fügen Sie von Razor ignoriert werden soll:

@if (Model != null) 
{ 
    @: var myLatLng = { lat: @Model[0].latitude.ToString(), lng: @Model[0].longitude.ToString() }; 
} 
else 
{ 
    @: var myLatLng = { lat:0, lng:0 }; 
} 
+0

ur Code ist korrekt, aber @if (Model! = Null) funktioniert nicht in meinem Fall. obwohl Modellzählung = 0 ist. Es tritt in diese loop.unble ein, um die Ausnahme zu behandeln, während das Modell null ist. –

1

Überprüfen Sie einfach, wenn die Liste> 0

@if (Model != null && Model.Count >0)