有人能告诉我在global.asax中使用[ModelBinder()]属性与注册模型绑定器的优点/精确度ModelBinders.Add()吗?
我能想到的一个优点是它更明确,而在全局注册ModelBinders对于检查动作方法的人并不那么明显.
我能想到的一个权衡是它不可重复使用,因为您必须将此属性添加到需要使用此模型绑定器的所有操作方法,而在全局中注册ModelBinders将使其可用于接收该模型的所有操作方法.
这是唯一的区别吗?
换句话说,会说明这是正确的:
[ModelBinder()].ModelBinders.我想验证Web API REST命令的输入.我希望它能够像State下面那样使用限制参数有效值的属性进行修饰.
public class Item {
...
// I want State to only be one of "New", "Used", or "Unknown"
[Required]
[ValidValues({"New", "Used", "Unknown"})]
public string State { get; set; }
[Required]
public string Description { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在不违背Web API的情况下做到这一点.理想情况下,该方法类似于Ruby on Rails的自定义验证.