Frage

Ich habe eine Struktur, die dem System ähnelt.

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();
    }

}

Ich versuche es mit ASP.NET MVC -Bindung zu verwenden. Unter Verwendung des Standard -Kundenmodellbinders ergeben die Eigenschaft immer Null. Ich kann dies beheben, indem ich "value" bis zum Ende jedes Formulareingabennamens hinzufügt, aber ich möchte nur, dass er mit einer Art benutzerdefiniertem Modellbinder direkt an den neuen Typ bin . Ich habe das Gefühl, dass ich in der Lage sein sollte, den Standardbindemittel zu erweitern, und mit ein paar Zeilen von Code die Eigenschaft Bindung an das gesamte Modell mithilfe einer impliziten Konvertierung umleiten. Ich bekomme nicht ganz das bindende Paradigma des Standardbinders, aber es scheint wirklich auf dieser Unterscheidung zwischen Modell- und Modelleigenschaften festzuhalten. Was ist die einfachste Methode, um dies zu tun? Vielen Dank!

War es hilfreich?

Lösung

Fand die Antwort. Ich musste nur einen benutzerdefinierten Typkonverter implementieren und der Standardmodellbinder hat ihn aufgenommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top