2017-04-07 79 views
0

在控制器中的MVC應用程序中,我使用了實體框架和LINQ。我將10條記錄存儲在一個變量中,然後將它們綁定到模型上。但如果沒有記錄,我會收到錯誤如果模型爲null,如何處理null異常,如何在mvc中處理視圖?

索引超出範圍。必須是非負的並且小於 的大小。

雖然我處理null異常的視野。我正在編譯時間錯誤

無法用數組初始值設定項初始化隱式類型變量。

查看:

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 
        } 

控制器:

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

就像你與別的做......把一個條件或者是一個守衛條款。 –

+0

你通過什麼查看「物品」? – Krishna

+0

查看傳遞給模型的項目。 –

回答

2

的問題是,下面的代碼是公認的剃刀代碼,而你可能希望它是Javascript代碼:

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

只要你想用剃刀被忽略的語句前面添加@:

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

你的代碼是正確的,但@if(Model!= null)在我的情況下不起作用。即使模型計數= 0。它進入這個循環。當模型爲空時,可以處理異常。 –

1

只是檢查如果列表> 0

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