【问题标题】:How to use multiple models to one view如何将多个模型用于一个视图
【发布时间】:2015-03-05 11:25:41
【问题描述】:

我在同一个 EDMX 中有多个数据表/实体(APRICOT BANANA、LEMON),每个表都有多个列(名称、数量、日期、排序)

在一个视图中,我有一个下拉列表(DropDownList),其中包含(“A”、“B”和“C”)

我想做什么:

在我的下拉列表中: 当我选择值 A 海报时,我在下拉列表中(在同一视图中)表数据 APRICOT

当我选择值 I B 出现在我的组合底部(以相同的顺序)来自表 BANANA 的数据

当我选择值 C i 出现在我的组合底部(以相同顺序)时,表 BANANA 中的数据

你能给我这个类、控制器和视图的示例代码吗?对不起,我是初学者!谢谢

非常感谢您的帮助

杰里米

【问题讨论】:

    标签: c# model-view-controller view model entity


    【解决方案1】:

    创建一个新的视图模型类,它将获取您需要的所有数据并将该视图模型传递给视图。 然后,您可以根据所选的下拉列表显示来自视图模型的数据。

    水果.cs

    public class Fruit
    {
        public string Name { get; set; }
        public int Quantity { get; set; }
    }
    

    FruitViewModel.cs

    public class FruitViewModel
    {
        public IEnumerable<Fruit> Fruits { get; set; }
    
        public FruitViewModel(IEnumerable<Fruit> fruit)
        {
            Fruits = fruits
        }
    }
    

    Controller.cs

    public ActionResult FruitView()
    {
       var fruits = //get your data here
       return View(new FruitViewModel(fruits));
    }
    

    查看.cs

    @model FruitViewModel
    
    @Html.DropDownList("FruitTypeId", new SelectList(Model.Fruits , "Id", "Name"), "Select one")
    

    根据所选的 ID,您可以使用 Javascript 显示您需要的值

    【讨论】:

    • 你好 Dakshal Raijada 谢谢你回答我,但是你能给我这个类,控制器和视图的示例代码吗?对不起,我是初学者!谢谢
    • 非常感谢您的帮助我有一个想法......但我没有看到我的表(APRICOT、LEMON 和 BANANA)的不同名称之间的关系我的 DropDownList 的值选择?
    • 如果存在三个不同的实体,则视图模型可以接受三个实体,并且视图可以根据视图模型中的实体数量进行下拉。
    猜你喜欢
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    相关资源
    最近更新 更多