我有一个表单,它将有效的对象字典发布到我的控制器操作中。所以我们得到IEnumerable<EditThemeAttributeModel>
public class EditThemeAttributeModel
{
public string Name { get; set; }
public object Value { get; set; }
}
当我查看Request.Form集合时,我看到了我的期望:
[1] "Attributes[0].Name" string
[2] "Attributes[0].Value" string
[3] "Attributes[1].Name" string
[4] "Attributes[1].Value" string
[5] "Attributes[2].Name" string
[6] "Attributes[2].Value" string
然而,当我尝试获取其中一个EditThemeAttributeModel
的值时,它并不像我期望的那样简单,它是一个字符串数组:
- Value {string[1]} object {string[]}
[0] "#ffffff" string
我可以通过直接使用Request.Forms集合来解决这个问题,但只是想了解这种行为。
答案 0 :(得分:4)
默认情况下,来自http请求的所有帖子都是字符串。由于您引用的是对象而不是类型化对象,因此默认为字符串,因为来自浏览器的数据是字符串。如果您希望它不是字符串,我建议您键入对象,或者可以为EditThemeAttributeModel
创建自己的模型绑定器。