gpt4 book ai didi

asp.net - DropDownList对于未选择值的集合

转载 作者:行者123 更新时间:2023-12-03 17:59:10 25 4
gpt4 key购买 nike

我正在使用带有自定义 View 模型的强类型 View 。此 View 模型包含书籍的集合。

public IList<Books> Books { get; private set; }

我还将选择列表传递给 View 。然而 DropDownListFor helper 类不会自动预选书的默认值。
@Html.DropDownListFor(m => Model.Books[i].AuthorID, Model.Author as SelectList)

其他一切都有效,例如它确实将选定的值传递回 Controller 。

我通过在 View 模型中创建选择列表找到了一种解决方法:
@Html.DropDownListFor(m => Model.Books[i].AuthorID, new SelectList(Model.AuthorList, "Value", "Text", @Model.Books[i].AuthorID.ToString()))

但是,如果有更简单的解决方案,我不想实现此解决方法。有没有办法让 View 可以处理集合中的值?

最佳答案

您应该像在解决方法中一样将作者列表作为模型的一部分传递。您可以在 Controller 中生成选择列表,但不需要在 View 中创建列表。就像是:

@Html.DropDownListFor(m => Model.Books[i].AuthorID, Model.AuthorList)

如果您在 Controller 中创建列表,这将起作用:
var model = new ViewModel()
{
AuthorList = new SelectList(Model.AuthorList, "Value", "Text"),
};

它会自行处理设置所选项目。

至于为什么你的 Model.Author as SelectList不起作用,我猜 Model.Author 不是作者姓名和 ID 的列表。它可能是一个域对象并使用 as 进行转换正在返回空值。

关于asp.net - DropDownList对于未选择值的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5458717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com