Могут ли пользовательские связующие модели работать в обоих направлениях - PullRequest
1 голос
/ 19 марта 2012

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

Я могу переопределить SetProperty и манипулировать значениями, которые отправляются POST, но как быть наоборот?

Например, я могу захотеть обрезать () все строки, выходящие из моей модели, возможно ли это с помощью связывателей моделей или я что-то упустил? Я посмотрел на переопределение GetPropertyValue, но это не срабатывает при загрузке представления.

Любые указатели приветствуются.

1 Ответ

1 голос
/ 19 марта 2012

Нет, связующие модели работают только в одном направлении.

Вы можете создать свой собственный экземпляр ActionResult, например, расширив ViewResult или PartialViewResult.

Или вы можете реализовать ActionFilterAttribute для обрезки строк.

public override void OnActionExecuted(ActionExecutedContext filterContext)
{
    var model = filterContext.Controller.ViewData.Model;
    ...
}

Или вы могли бы сделать грубую силу

public class MyModel
{
    private string _myProp

    public string MyProp
    {
        set { _myProp = value.Trim(); }
        get { return _myProp; }
    }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...