我有一个类 Farm,其中包含 Animal 类型的类列表。
public class Farm {
public list<Animal> Animals;
// other members..
}
public class Animal {
public string Name;
public string Family;
}
我想为我的 Farm 对象创建一个 createOrEdit 视图,并且我想将 DropDownLists 用于动物的名称和家庭。选择来自数据库。
当我将 Animal 模型传递给视图进行编辑时,我希望 DropDownLists 以某种方式匹配每个动物的属性并设置列表的选定值。
我已经尝试了很多这样的事情:
@for(int i = 0; i < Model.Animals.Count; i++)
{
@Html.DropDownListFor(model => model.Animals[i].Name, Model.AnimalNames)
// where Model.AnimalNames is a SelectList
@Model.Animals[i].Name // (for testing) this properly displays the name I want to be selected in the list
}
我在这个网站上看到了很多关于在控制器中创建 SelectLists、迭代每个项目并在适当的地方设置 selected 属性的建议。但是必须有一种更清洁的方法......如果我的农场有 100 只动物怎么办。在控制器中创建 200 个 SelectList,遍历它们中的每一个以匹配选定的值,然后将其传递给视图似乎并不合理。
那么,我有没有一种简单的方法来获取 Animal.Name[i] 值并在 DDL 中找到它的匹配列表项?
谢谢!!