我遇到了一个问题,我有一个表单,表单中有一个下拉列表,我从控制器(后端(获取数据,但由于某种原因,我没有在前端填充数据。我在另一个.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>();
的内容。