繁体   English   中英

定制模型活页夹可以双向使用吗?

[英]Can custom model binders work in both directions?

我一直在研究自定义模型绑定程序,以作为一种全局拦截和修改视图模型上特定字符串属性的方式。

我可以覆盖SetProperty并处理要发布的值,但是反过来又如何呢?

例如,我可能想要Trim()从模型中出来的所有字符串,使用模型绑定程序是否可能?或者我是否缺少某些东西? 我已经看过重写GetPropertyValue,但是在加载视图时似乎不会触发。

任何指针将不胜感激。

不,模型活页夹只能在一个方向上工作。

您可以创建自己的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; }
    }
}

...但是您不能使用模型绑定器来绑定从控制器到视图的模型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM