Вопрос

У меня есть структура, которая работает так, как система.

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

}

Я пытаюсь использовать его с помощью привязки MVC ASP.NET. Использование модели клиента по умолчанию Binder, свойство всегда будет давать ноль. Я могу это исправить, добавив «. Value» в конец каждого имени ввода формы, но я просто хочу, чтобы он был связан с новым типом напрямую, используя какую-то таможенную модель модели, но все решения, которые я пробовал, казалось ненужно сложным Отказ Я чувствую, что я должен иметь возможность расширить связующее значение по умолчанию и с несколькими линиями кода перенаправить привязку свойства ко всей модели с использованием неявного преобразования. Я не совсем получаю парадигму связывания связующего по умолчанию, но, кажется, действительно застрял на этом различия между моделью и свойствами модели. Какой самый простой способ сделать это? Спасибо!

Это было полезно?

Решение

Нашел ответ. Мне просто нужно было реализовать пользовательский преобразователь типа, и связующее моделей по умолчанию выбрал его.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top