在下拉列表中填充没有显示在asp net core/c#中的数据



我遇到了一个问题,我有一个表单,表单中有一个下拉列表,我从控制器(后端(获取数据,但由于某种原因,我没有在前端填充数据。我在另一个.cs.html文件中有相同的表单,EvaluationController和我正在index.cshtml文件中实现相同的表单并使用HomeController。我需要一些帮助,说明我做错了什么,数据没有在前端填充?请并感谢你的帮助。

这是我的代码:

家庭控制器:

public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
private readonly IHttpClientFactory _httpClientFactory;
private IMemoryCache _cache;
public HomeController(ILogger<HomeController> logger, IHttpClientFactory httpClientFactory, IMemoryCache memoryCache)
{
_logger = logger;
_httpClientFactory = httpClientFactory;
_cache = memoryCache;
}
public IActionResult Index()
{
ViewBag.Cache = _cache;
return View();
}

public IActionResult Privacy()
{
return View();
}

[AllowAnonymous]
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
} 

根据错误:

传递到ViewDataDictionary的模型项的类型为"System.Collections.Generic.List`1[MyApp.Models.Evaluation]",但此ViewDataDiction实例需要类型为"MyApp.Models.Evaluation"的模型项

Index上的EvaluationController中,您返回一个列表:

public ActionResult Index()
{
return View(new List<Evaluation>());
}

应该是:

public ActionResult Index()
{
return View(new Evaluation());
}

或者将Index.cshtml中的"模型"更改为类似@model List<Evaluation>();的内容。

最新更新