Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Db Repository ASP.net core的选择列表中添加项目_C#_Asp.net Mvc_Asp.net Core_Razor - Fatal编程技术网

C# 从Db Repository ASP.net core的选择列表中添加项目

C# 从Db Repository ASP.net core的选择列表中添加项目,c#,asp.net-mvc,asp.net-core,razor,C#,Asp.net Mvc,Asp.net Core,Razor,我想用存储库中的数据填充视图中的选择列表。我尝试使用ViewData,如下代码所示,但出现了此错误 无法将类型“object”隐式转换为“System.Collections.Generic.IEnumerable”。存在显式转换(是否缺少强制转换?) 选择列表如下所示 控制器看起来像这样 [HttpGet] public IActionResult Create() { this.ViewData[“categories”]=\u categoryRepository.categories

我想用存储库中的数据填充视图中的选择列表。我尝试使用ViewData,如下代码所示,但出现了此错误

无法将类型“object”隐式转换为“System.Collections.Generic.IEnumerable”。存在显式转换(是否缺少强制转换?)

选择列表如下所示


控制器看起来像这样

[HttpGet]
public IActionResult Create()
{
this.ViewData[“categories”]=\u categoryRepository.categories;
返回视图();
}

此错误的任何解决方案,或者以其他方式将存储库数据获取到视图的最佳方式是什么?

选择的项目属性值是
选择列表项目
的集合。因此,您必须将其转换为以下内容:

this.ViewData["categories"] = _categoryRepository.Categories.Select(x => new SelectListItem {
            Value = x.ToString(),
            Text = x.ToString()
        }).ToList();
在Razor中,我们可以将此更新为

 <select asp-for="Category" class="custom-select mr-sm-2" placeholder="Category" asp-items="@((List<SelectListItem>)ViewData["categories"])">
     <option value="">Select one</option>
    </select>

选择一个

尝试以下操作:ViewData[“categories”]=\u categoryRepository.categories.Select(x=>new-SelectListItem(){Value=x.Id.ToString(),Text=x.Title});为了查看是否正确理解了这一点,这会导致存储库中的数据必须位于SelectListitem对象中,才能在SelectList中使用。再次感谢您提供的解决方案。