【问题标题】:Asp.Net core MVC Microsoft Entity FrameworkAsp.Net 核心 MVC 微软实体框架
【发布时间】:2020-08-16 05:12:30
【问题描述】:

我的 MVC asp.net 核心站点有一个问题。我想从数据库中获取数据,然后将它们粘贴到组合框中。我真的不知道是什么导致出现此错误消息: Error Message
我的创业

services.AddDbContext<ConnectionStringClass>(options => options.UseSqlServer(Configuration.GetConnectionString("GETDATA"))); //Stored in json

/Views/Home 中的我的 Index.cshtml

@{
    ViewData["Title"] = "Home Page";
}
<select id="Select1" asp-items="@(new SelectList(Model.displaydata,"Id","CisloReklamace"))">
            <options value="" selected disabled>

            </options>
        </select>

我的 HomeController 在 /Views/Home

private readonly ILogger<HomeController> _logger;
        private readonly ConnectionStringClass _db;

        public HomeController(ILogger<HomeController> logger, ConnectionStringClass db)
        {
            _logger = logger;
            _db = db;
        }

        public IEnumerable<EmpClass> displaydata { get; set; }

        public async Task OnGet()
        {
            displaydata = await _db.Reklamace.ToListAsync();
        }

        public IActionResult Index()
        {
            var model = new HomeController(_logger, _db);
            return View(model);
        }

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

.Models 中的我的 EmpClass

public class EmpClass
    {
        [Key]
        public int Id { get; set; }
        public string CisloReklamace { get; set; }
        public string IdAdresa { get; set; }
        public string Zakazka { get; set; }
    }

.Models 中的我的 ConnectionStringClass

public class ConnectionStringClass: DbContext
    {
        public ConnectionStringClass(DbContextOptions<ConnectionStringClass> options): base(options)
        {

        }

        public DbSet<EmpClass> Reklamace { get; set; }
    }

感谢您的帮助。

【问题讨论】:

  • 如您的错误消息中所示,您的选择列表为空,即没有要迭代的项目。您没有将 EmpClass 作为模型传递,而是您的主控制器;不知道为什么。这看起来很混乱。
  • 好的,我怎样才能通过我的班级作为模型?

标签: c# asp.net-mvc entity-framework asp.net-core entity-framework-core


【解决方案1】:

控制器

    public async Task<IActionResult> Index()
    {
        var model = await _db.Reklamace.ToListAsync();
        return View(model);
    }

查看

@model IEnumerable<EmpClass>

<select id="Select1" asp-items="@(new SelectList(Model.displaydata,"Id","CisloReklamace"))">
            <options value="" selected disabled>

            </options>
        </select>

在控制器中,您传递模型,该模型正在查看 @model IEnumerable&lt;EmpClass&gt;。在您的代码中,您尝试将模型作为 HomeController 传递。所以你的视图不能绑定模型,你得到了 error = null 异常

【讨论】:

    猜你喜欢
    • 2010-10-21
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    相关资源
    最近更新 更多