模型绑定属性,从字符串到类型的隐式转换

时间:2010-09-14 08:45:18

标签: c# asp.net-mvc modelbinders

我有以下课程:

public class PostCode {
    public string Name { get; set; }

    public static implicit operator PostCode(string postCode)
    {
        return new PostCode {Name = postCode};
    }
}

它构成了Address类的一部分,它是辅助模板的模型(EditorTemplates> Address.ascx)。

使用<%= Html.EditorFor(model => model.Address)%>呈现此帮助程序模板,其中Address是另一个对象的属性。

除了PostCode对象之外,在发布到操作方法时,地址中的所有内容都被正确绑定。这似乎可能是因为它存储为PostCode而不是字符串。

如何强制模型绑定器遵循此演员表?

3 个答案:

答案 0 :(得分:1)

我最终使用字符串来表示ViewModel中的邮政编码,并在映射到我的域实体时进行了转换。

答案 1 :(得分:0)

你有PostCode的EditorTemplate吗? 如果没有创建它。

答案 2 :(得分:0)

这似乎与我遇到的问题相似。

请参阅此.net mvc custom types in urls

您必须实施自己的模型绑定器才能完成这项工作。