相关疑难解决方法(0)

使用ModelBinder属性与ModelBinders.Add()

有人能告诉我在global.asax中使用[ModelBinder()]属性与注册模型绑定器的优点/精确度ModelBinders.Add()吗?

我能想到的一个优点是它更明确,而在全局注册ModelBinders对于检查动作方法的人并不那么明显.

我能想到的一个权衡是它不可重复使用,因为您必须将此属性添加到需要使用此模型绑定器的所有操作方法,而在全局中注册ModelBinders将使其可用于接收该模型的所有操作方法.

这是唯一的区别吗?

换句话说,会说明这是正确的:

  • 如果你只在一个动作方法中使用模型(可能是两个,获取+发布),那么使用[ModelBinder()].
  • 如果您在多个操作方法中使用该模型,请在全局中注册它ModelBinders.

c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

23
推荐指数
1
解决办法
1万
查看次数

Web API自定义验证,以根据已批准值列表检查字符串

我想验证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的自定义验证.

c# asp.net-mvc asp.net-mvc-4 asp.net-web-api

11
推荐指数
1
解决办法
1万
查看次数