MVC。将 TextBoxFor 绑定到类型对象的 Field

MVC. Bind TextBoxFor to a Field of type object

假设如下代码:

public class Person 
{
    public object Age { get; set;}
}

内部视图:

@Html.TextBoxFor(x => x.Age, new { @type = "number" })

现在发布表单时,typeOf person.Age 属性 是 string[1]。为什么?

绑定东西时不应该有一些基于输入类型的Type拾取逻辑吗?

您不能将 *For 助手与 object 类型的 属性 一起使用。这些助手需要进行类型推断,以便创建具有正确名称和属性的正确类型的输入。 object 字面上可以是 任何东西.

我不确定您为什么要使用 object 作为 属性,例如 Age(这不是很明显的 int 吗?)。但是,如果您确实需要这样做,我建议您使用视图模型,您可以在其中为视图定义更具体的类型。然后,您可以简单地将发布的值映射回您的 object 属性.