gpt4 book ai didi

c# - 来自数据库的 ASP.NET MVC 下拉列表

转载 作者:可可西里 更新时间:2023-11-01 03:12:53 24 4
gpt4 key购买 nike

好吧,我是整个 MVC 世界的新手,但这似乎是完成任务的一种很好的方式,我正在努力让它在这里发挥作用。

问题是:我无法从我的 SQL 数据库中的表中获取数据到我注册页面上的简单下拉表单中。

我只是不知道把东西放在哪里,在哪里编码以打开表格,选择 id,在哪里放 response.write 以及如何将它发送到 View ?

我的模型是这样的:

    public class users
{
public string name {get; set;}
public int user_id {get; set;}
}

我的 Controller 是这样的:

    [HttpGet]
public ActionResult ListUser()
{
return View();
}

我的观点是这样的:

@model Community.Models.users

我用谷歌搜索了 2 天,在 youtube 上看了几个视频,但没有用,我找不到。请问这里有懂行的吗?请给我指出一些好的教程和/或论坛,我可以在其中浏览我可能遇到的更多问题


这个项目仍然没有运气..

我正在创建一个表单,在该表单中,我想要一个 db-loop (IEnumerable)。但是当前模型不是 IEnumerable。我几乎被卡住了,看了一堆教程,他们都只列出了一个连接,如果我想要两个模型怎么办?

这是我的 Controller ,我知道您必须将列表传递给 View ,对吧?

    public ActionResult Registration()
{
return View(db.users.ToList());
}

如果没有 IEnumerable 模型,我如何在我的 View 中获取该列表?

@neoistheone,你的例子对我帮助不大,我的数据库是这样打开的:

private DataBaseContext db = new DataBaseContext();

我不知道怎么做,但它打开了连接。我已经试了这么多小时了,太傻了,太久没睡了!

我习惯了 ASP-Classic 编程,这是我第一次认真尝试提升我对编程最新语言和 OOP 的知识。

最佳答案

SelectList 添加到您的模型中:

public SelectList DropDownList { get; set; }

为该集合构建类:

public class MyListTable
{
public string Key { get; set; }
public string Display { get; set; }
}

然后在您的 Controller 中,从数据库中为 MyListTable 类加载数据:

var list = new List<MyListTable>();

using (SqlConnection c = new SqlConnection(cString))
using (SqlCommand cmd = new SqlCommand("SELECT KeyField, DisplayField FROM Table", c))
{
using (SqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
list.Add(new MyListTable
{
Key = rdr.GetString(0),
Display = rdr.GetString(1)
});
}
}
}

var model = new users();
model.DropDownList = new SelectList(list, "Key", "Display");

最后,您需要将模型发送到 View :

return View(model);

现在在 Razor 中你可以显示这个:

@Html.DropDownListFor(m => Model.DropDownList);

你当然可以给这些东西起更好的名字,但你明白了。

关于c# - 来自数据库的 ASP.NET MVC 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18613851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com