2012-02-13 35 views
0

我有一些服务,我可以查询的查询参数:限制可以传递给ASP.NET MVC其余服务

http://localhost/myservice/data?key=value

有没有一种办法可以限制查询参数?例如。如果有人用不受支持的参数调用服务,我想报告一个错误,例如我想下面的失败:

http://localhost/myservice/data?key=value&anyotherparam=1

我不知道这是否是正确的事情。不过,我被问到上述情况是否可以实施,所以我想给出一个合理的答案。

回答

1

如果你的服务忽略anotherparam,老实说谁在乎?

而对于那些谁照顾:

public ActionResult Data(string key) 
{ 
    if (string.IsNullOrEmpty(key) || Request.QueryString.Count > 1) 
    { 
     return HttpNotFound(); 
    } 

    ... 
} 

而且很明显,如果你要如果一遍又一遍在多个动作写这个你重构它变成一个自定义操作过滤器的更好。

+0

所以唯一的方法是解析查询字符串我自己?我明白,通常你不应该关心未使用的参数,但是有些情况下,当API的用户假定某些参数不支持时,会支持某些参数。在这种情况下,参数将被忽略,这对消费者并不总是显而易见的。 – 2012-02-13 22:41:30

相关问题