【问题标题】:Populate a Dropdown List in MVC View在 MVC 视图中填充下拉列表
【发布时间】:2016-08-23 05:28:05
【问题描述】:

我是 MVC 框架的新手,不知道如何填充与数据库绑定的下拉列表。请在视图部分帮助我,因为我想使用以下代码在下拉列表中显示帐户名称。

型号:-

[Table("account")]
public class Accounts
{
    [Key]
    public int acc_id { get; set; }
    public string acc_name { get; set; }
    // public SelectList AccountList { get; set; }  
}

AccountsContext

public class AccountsContext:DbContext
{
    public DbSet<Accounts> Account { get; set; }
    // public SelectList Accounts { get;set;}
}

控制器:-

public ActionResult Group()
{
    Accounts ak = new Accounts();
    AccountsContext accountscontext = new AccountsContext();
    List<Accounts> account = accountscontext.Account.ToList();
    return View(account);
}

【问题讨论】:

  • 显示您的视图(并且您需要返回一个模型,其中包含要绑定到(例如)int SelectedAccount 的属性和选项的属性(例如)IEnumerable&lt;SelectListItem&gt; AccountList
  • Stephen 我在我看来使用了这段代码。 @model IEnumerable
  • 你的视图中有什么代码(你的视图没有显示)
  • 我还没有为视图部分的下拉菜单编写任何代码。模型 IEnumerable @{ ViewBag.Title = "Group";布局 = "~/Views/Shared/_Layout.cshtml";这些是我的视图包含的首字母缩写。接下来我需要做的是在此处填充下拉列表。
  • 我建议阅读this question/answer来学习基础知识

标签: sql-server asp.net-mvc


【解决方案1】:

您正在将帐户列表作为模型发送到您的视图。没关系。但是您将如何获得用户将选择的值?为此,您应该在服务器端有一个属性绑定到客户端的选定项目。

我建议使用 ViewModel,它将帐户列表作为 SelectListItem 的集合(将在控制器中填充)和所选项目的另一个属性,然后不要将帐户列表直接传递给您的视图应该传递新的 viewModel 并相应地绑定。

视图模型

public class AccountsViewModel
{
    public int SelectedAccountId { get; set; }
    public IEnumerable<SelectListItem> Accounts{ get; set; }
}

查看

@model AccountsViewModel
@Html.DropDownListFor(m => m.SelectedAccountId , Model.Accounts)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    相关资源
    最近更新 更多