Asp.net mvc 4 在MVC中添加dropdownlist

Asp.net mvc 4 在MVC中添加dropdownlist,asp.net-mvc-4,Asp.net Mvc 4,如果MVC只允许每个视图有一个ViewModel,那么如何将dropdownlist(为此需要有一个单独的ViewModel)合并到另一个ViewModel(即具有此dropdownlist列的实体)已使用的现有视图中?您可以在主ViewModel中创建一个属性,该属性包含用于下拉列表的ViewModel,并与下拉列表一起使用 public IEnumerable<int> GetAllSuppliers() { NorthwindEntiti

如果MVC只允许每个视图有一个ViewModel,那么如何将dropdownlist(为此需要有一个单独的ViewModel)合并到另一个ViewModel(即具有此dropdownlist列的实体)已使用的现有视图中?

您可以在主ViewModel中创建一个属性,该属性包含用于下拉列表的ViewModel,并与下拉列表一起使用

public IEnumerable<int> GetAllSuppliers()
        {
            NorthwindEntities db = new NorthwindEntities();
            return db.Suppliers.Select(e => e.SupplierID);
        } 
假设你有一个控制器

public class HomeController
{
  public ActionResult Index()
  {
    var viewModel = new MainViewModel
    {
      SomeProperty = "SomeValue",
      DropDownData = new DropDownDataViewModel() // Initialize it with appropriate data here.
    };

    return this.View(viewModel);
  }
}
和主视图模型

public class MainViewModel
{
  public string SomeProperty {get; set;}
  public DropDownDataViewModel DropDownData { get; set; }
}

因此,在视图中,您可以调用
@Model.DropDownData
来访问此viewmmodel。

您可以在主ViewModel中创建一个属性,其中包含用于dropdownlist的ViewModel,并将其与下拉列表一起使用

public IEnumerable<int> GetAllSuppliers()
        {
            NorthwindEntities db = new NorthwindEntities();
            return db.Suppliers.Select(e => e.SupplierID);
        } 
假设你有一个控制器

public class HomeController
{
  public ActionResult Index()
  {
    var viewModel = new MainViewModel
    {
      SomeProperty = "SomeValue",
      DropDownData = new DropDownDataViewModel() // Initialize it with appropriate data here.
    };

    return this.View(viewModel);
  }
}
和主视图模型

public class MainViewModel
{
  public string SomeProperty {get; set;}
  public DropDownDataViewModel DropDownData { get; set; }
}

因此,在您的视图中,您可以调用
@Model.DropDownData
,以访问此viewmmodel。

此外,我想,您已经找到了所有需要的内容:

作为初学者,我仅使用NorthWind数据库完成了dropDownlist的基本实现

我已经从Northwind数据库导入了Product&Suppliers表

ProductController.cs
文件中,这是我的
Product
表的控制器文件,添加方法:
GetAllSuppliers
以获取我们将在下拉列表中显示的所有供应商SID

public IEnumerable<int> GetAllSuppliers()
        {
            NorthwindEntities db = new NorthwindEntities();
            return db.Suppliers.Select(e => e.SupplierID);
        } 
在相应的
Create.aspx视图中,使用以下命令:

<%: Html.DropDownListFor(model => model.SupplierID, ViewData["Suppliers"] as SelectList) %>
model.SupplierID,查看数据[“供应商”]作为选择列表)%>
下面是结果的快照:


如果您需要任何解释,请告诉我。

此外,我想,这个问题已经得到了您想要的一切:

作为初学者,我仅使用NorthWind数据库完成了dropDownlist的基本实现

我已经从Northwind数据库导入了Product&Suppliers表

ProductController.cs
文件中,这是我的
Product
表的控制器文件,添加方法:
GetAllSuppliers
以获取我们将在下拉列表中显示的所有供应商SID

public IEnumerable<int> GetAllSuppliers()
        {
            NorthwindEntities db = new NorthwindEntities();
            return db.Suppliers.Select(e => e.SupplierID);
        } 
在相应的
Create.aspx视图中,使用以下命令:

<%: Html.DropDownListFor(model => model.SupplierID, ViewData["Suppliers"] as SelectList) %>
model.SupplierID,查看数据[“供应商”]作为选择列表)%>
下面是结果的快照:


如果您需要任何解释,请告诉我。

AlexK,我明白了,但是您能提供一个简单的代码片段示例吗?谢谢AlexK,我明白了!AlexK,明白了,但是你能提供一个简单的代码片段示例吗?谢谢AlexK,明白了!为什么你会认为下拉列表需要单独的视图模型?为什么你会认为下拉列表需要单独的视图模型?谢谢!基本的实现就是我想要的。很好地为我工作!!非常感谢。基本的实现就是我想要的。很好地为我工作!!