Пользовательская модель Binder - PullRequest
0 голосов
/ 23 февраля 2011

Я бы хотел создать пользовательский механизм связывания моделей.

Допустим, у вас 20 свойств.Мне нужно вручную связать только пять из них.Я хотел бы связать остальные 15 свойств автоматически, как это делает связыватель по умолчанию.

Возможно ли это как-то?

Ответы [ 2 ]

2 голосов
/ 23 февраля 2011

Конечно, самое меньшее, что вы можете сделать, это наследовать DefaultModelBinder, переопределить метод BindModel(...) и использовать base.BindModel(...) для чего угодно.После этого просто предоставьте свою собственную логику связывания для всего остального.

0 голосов
/ 23 февраля 2011

У меня была такая проблема несколько дней назад, и я решил ее, заполнив свойства по умолчанию внутри конструктора . Таким образом, я просто без проблем передаю модель, даже если у меня нет поля «Автор»:

public class Post
{
    private string title;
    private string author;
    private string content;

    public string Title
    {
        get { return title; }
        set { title = value; }
    }

    public string Author
    {
        get { return author; }
        set { author = value; }
    }

    public string Content
    {
        get { return content; }
        set { content = value; }
    }

    public Post()
    {
        this.author = "Davis";
    }
}
...