2014-07-16 19 views
6

Mam metody działania folloiwng:Jak utworzyć pusty SelectList

public JsonResult LoadSitesByCustomerName(string customername) 
{ 
    var customerlist = repository.GetSDOrg(customername) 
           .OrderBy(a => a.NAME) 
           .ToList(); 
    var CustomerData; 
    CustomerData = customerlist.Select(m => new SelectListItem() 
    { 
     Text = m.NAME, 
     Value = m.NAME.ToString(), 
    }); 
    return Json(CustomerData, JsonRequestBehavior.AllowGet); 
} 

ale obecnie mam następujący błąd na var CustomerData;:

implicitly typed local variables must be initialized 

więc nie jestem pewien, w jaki sposób można utworzyć pusty SelectList, aby przypisać go do zmiennej var? Dzięki

Odpowiedz

6

można spróbować tego:

IEnumerable<SelectListItem> customerList = new List<SelectListItem>(); 

Błąd ty były coraz to uzasadnione, ponieważ

słowa kluczowego var instruuje kompilator wywnioskować typ zmiennej z wyrażeniem po prawej stronie instrukcji inicjalizacyjnej.

Z drugiej strony, można spróbować następujących jeden:

var customerList = customerlist.Select(m => new SelectListItem() 
        { 
         Text = m.NAME, 
         Value = m.NAME.ToString(), 
        }); 

Powodem sekund przypisanie działa jest to, że w ten sposób kompilator można wywnioskować typ zmiennej, ponieważ wie, jaki typ zapytania LINQ zwraca.

+0

Jak utworzyć instancję interfejsu? – Mardoxx

+0

@Mardoxx oops ... Właśnie to zauważyłem i poprawiłem. – Christos

2

Initialise zmienną kiedy zadeklarować go:

var CustomerData = customerlist.Select(m => new SelectListItem() 
{ 
    Text = m.NAME, 
    Value = m.NAME.ToString(), 
}); 
4

Błąd ten oznacza, że ​​nie można zadeklarować zmienną var bez podania wartości, na przykład:

var double1 = 0.0; // Correct, compiler know what type double1 is. 
var double2; // Error, compiler not know what type double2 is. 

należy przypisać wartość do var CustomerData; na przykład:

var CustomerData = customerlist.Select(m => new SelectListItem() 
      { 
       Text = m.NAME, 
       Value = m.NAME.ToString(), 

      }); 
4

Spróbuj tego:

customerlist = new[] { new SelectListItem { } }; 
1

pusty element listy z domyślnie jeden

var area = new[] { new tbl_Area { AreaID = -1, AreaName = "Please Select Main Area" } }; 

tbl_Area może mieć klasę lub datamodel

class tbl_Area{ 
     public int AreaID {get;set;} 
     public string AreaName {get;set;} 
} 
3

to wykorzystać, aby utworzyć pusty SelectList:

new SelectList(Enumerable.Empty<SelectListItem>()) 

Enumerable.Empty<SelectListItem>() tworzy puste sekwencje, które zostaną przekazane do konstruktora SelectList. Jest to konieczne, ponieważ SelectList nie ma przeciążenia konstruktora bez parametrów.

Powiązane problemy