我有以下行动方法:
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);
}
但目前我在var CustomerData;
上收到以下错误:
implicitly typed local variables must be initialized
所以我不知道如何创建一个空的SelectList来将其分配给var变量? 感谢
答案 0 :(得分:12)
使用此选项可创建空的SelectList
:
new SelectList(Enumerable.Empty<SelectListItem>())
Enumerable.Empty<SelectListItem>()
创建一个空序列,将传递给SelectList
的构造函数。这是必要的,因为SelectList
没有没有参数的构造函数重载。
答案 1 :(得分:7)
你可以尝试这个:
IEnumerable<SelectListItem> customerList = new List<SelectListItem>();
你得到的错误是合理的,因为
var关键字指示编译器从初始化语句右侧的表达式推断变量的类型。
另一方面,您可以尝试以下方法:
var customerList = customerlist.Select(m => new SelectListItem()
{
Text = m.NAME,
Value = m.NAME.ToString(),
});
第二个赋值的工作原理是,编译器可以通过这种方式推断变量的类型,因为它知道LINQ查询的类型返回。
答案 2 :(得分:4)
该错误意味着您无法在不提供值的情况下声明var
变量,例如:
var double1 = 0.0; // Correct, compiler know what type double1 is.
var double2; // Error, compiler not know what type double2 is.
您需要为var CustomerData;
分配一个值,例如:
var CustomerData = customerlist.Select(m => new SelectListItem()
{
Text = m.NAME,
Value = m.NAME.ToString(),
});
答案 3 :(得分:4)
试试这个:
customerlist = new[] { new SelectListItem { } };
答案 4 :(得分:2)
声明变量时初始化变量:
var CustomerData = customerlist.Select(m => new SelectListItem()
{
Text = m.NAME,
Value = m.NAME.ToString(),
});
答案 5 :(得分:1)
空列表项,默认为
var area = new[] { new tbl_Area { AreaID = -1, AreaName = "Please Select Main Area" } };
tbl_Area可以是类或数据模型
class tbl_Area{
public int AreaID {get;set;}
public string AreaName {get;set;}
}