2
我有一個結構,其工作原理非常類似於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」來解決此問題,但我只是希望它使用某種自定義模型綁定器直接綁定到新類型,但我嘗試過的所有解決方案似乎都是不必要的複雜。我覺得我應該能夠擴展默認聯編程序,並用幾行代碼將屬性綁定重定向到使用隱式轉換的整個模型。我沒有完全得到默認綁定器的綁定範例,但它似乎確實卡住了模型和模型屬性之間的區別。什麼是最簡單的方法來做到這一點? 謝謝!
祈禱告訴你如何實現這個自定義類型轉換器 – Jonn 2011-10-04 08:13:00
簡單來說,它抓取泛型參數並將值轉換爲該類型,然後使用爲SpecialProperty的新實例的Value屬性創建的值。 – Paul 2011-10-04 15:12:59