gpt4 book ai didi

asp.net-mvc - 如何绑定(bind)到 ASP.NET MVC 中的特定数组元素?

转载 作者:行者123 更新时间:2023-12-04 07:09:42 26 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC RC1 并尝试将文本框绑定(bind)到对象属性,如下所示:

<%= Html.TextBox("Comments.Contacts[0].ContactName") %>

似乎它应该工作,因为这样做:
<%= ((MuralProject)ViewData.Model).Comments.Contacts[0].ContactName %>

但是很可惜,文本框中的结果是一个空字符串。难道我做错了什么?

最佳答案

文本框扩展方法的第一个参数设置最终创建的输入元素的名称,并尝试根据该参数从 ViewData/Model(对于它使用 TypeDescriptors/反射的模型)获取条目。

它这样做的方法只是在点处拆分输入字符串,然后通过反射检查 ViewDataDictionary 中的特定键和模型,所以如果你给它它会尝试寻找 Contacts[0] 而不是 Contacts 并赢了不要拿走你的属性(property)。

为了解决这个问题,您只需要提供对象的实际值,例如

Html.TextBox("Comments.Contacts[0].ContactName", 
Model.Comments.Contacts[0].ContactName)

如果您查看 MVC 源代码并查看 ViewDataDictionary 类,您可以自己看到这一点。

关于asp.net-mvc - 如何绑定(bind)到 ASP.NET MVC 中的特定数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/575151/

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