[英]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.