我有工作原理非常类似于System.Nullable类型的结构体:

public struct SpecialProperty<T>
{
    public static implicit operator T(SpecialProperty<T> value)
    {
        return value.Value;
    }
    public static implicit operator SpecialProperty<T>(T value)
    {
        return new SpecialProperty<T> { Value = value };
    }

    T internalValue;
    public T Value { get { return internalValue; } set { internalValue = value; } }

    public override bool Equals(object other)
    {
        return Value.Equals(other);
    }
    public override int GetHashCode()
    {
        return Value.GetHashCode();
    }
    public override string ToString()
    {
        return Value.ToString();
    }

}

我想用ASP.NET MVC结合使用。使用默认的用户模型绑定的属性将始终产生空。我可以通过添加“.value的”每一个表单输入名称的末尾解决这个问题,但我只是希望它绑定到新的类型直接使用某种自定义的模型绑定的,但所有的解决方案,我已经试过似乎不必要的复杂性。我觉得我应该可以扩展默认的粘合剂和用几行代码重定向属性绑定到使用隐式转换整个模型。我不太获取默认的粘结剂的结合模式,但它似乎真的被困在模型和模型的属性之间的区别。什么是最简单的方法是什么? 谢谢!

有帮助吗?

解决方案

找到了答案。我只是需要实现一个自定义类型转换器和默认的模型粘合剂把它捡起来。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top