如何使用模型中的数据定义List,然后使用lambda表达式来获取所有元素

本文关键字:表达式 lambda 获取 元素 然后 模型 何使用 数据 List 定义 | 更新日期: 2023-09-27 18:02:09

我想做的是用模型中的数据填充列表,并设置为查看并在视图中显示与dropDownListFor…我的逻辑正确吗?我应该怎么做呢

模型:

public class Categories{
public int id {get;set}
public string categoryName{get;set}
    public List<CategoryName> catNames {get;set;} //or IEnumerable<>
}

控制器:

public ActionResult getSomething(){
public List<CategoryName>   list = new List<CategoryName>() ;
public List<CategoryName> names= list.FindAll(x=>x.categoryName);
return View(names)
}

如何使用模型中的数据定义List,然后使用lambda表达式来获取所有元素

你有一个无效的c#语法,但你是在正确的轨道上。

定义模型:

public class CategoriesModel
{
    public int Id { get; set }
    public string CategoryName { get; set }
    public List<CategoryName> CategoryNames { get; set; }
}

一个控制器:

public class HomeController: Controller
{
    public ActionResult Index()
    {
        var model = new CategoriesModel();
        model.CategoryNames = GetCategoryNames();
        return View(model);
    }
    private List<CategoryName> GetCategoryNames()
    {
        // TODO: you could obviously fetch your categories from your DAL
        // instead of hardcoding them as shown in this example
        var categories = new List<CategoryName>();
        categories.Add(new CategoryName { Id = 1, Name = "category 1" });
        categories.Add(new CategoryName { Id = 2, Name = "category 2" });
        categories.Add(new CategoryName { Id = 3, Name = "category 3" });
        return categories;
    }
}

,最后是模型的强类型视图:

@model CategoriesModel
@using (Html.BeginForm())
{
    @Html.DropDownListFor(
        x => x.CategoryName, 
        new SelectList(Model.CategoryName, "Id", "Name")
    )
    <button type="submit"> OK</button>
}

您还没有显示您的CategoryName模型,但在这个例子中,我假设它具有称为IdName的属性,这是DropDownList绑定的