如何创建一个空的选择列表

本文关键字:选择 列表 一个 何创建 创建 | 更新日期: 2023-09-27 18:13:14

我有以下的操作方法:

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

所以我不知道如何创建一个空的选择列表分配给var变量?由于

如何创建一个空的选择列表

使用此命令创建一个空的SelectList:

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

Enumerable.Empty<SelectListItem>()创建一个空序列,该序列将传递给SelectList的构造函数。这是必要的,因为SelectList没有没有参数的构造函数重载。

你可以试试这个:

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

你得到的错误是合理的,因为

var关键字指示编译器从初始化语句右侧的表达式推断变量的类型。

另一方面,你可以试试下面这个:

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

第二次赋值之所以有效,是因为这样编译器就可以推断出变量的类型,因为它知道LINQ查询返回的类型。

该错误意味着您不能在不提供值的情况下声明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(),
            });

试试这个:

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

声明变量时初始化:

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

空列表项,默认为

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;}
 }