0

我需要在下面 url 中提到的 {ID} 中为 web api 服务添加数据注释以接受最大长度为 7,否则我应该抛出一个自定义异常。我没有任何模型类可以使用 maxlength 属性。感谢你的帮助。

http://xyz.com/ {ID}

4

2 回答 2

0

假设您在问题中拥有的网址,您可以尝试执行以下操作:

        routes.MapRoute(
            "Default", // Route name
            "{id}", // URL with parameters
            new { controller = "Home", action = "Index" }, // Parameter defaults,
            new { id = @"\d{4}" } //Constraint
        );

        routes.MapRoute(
            "DefaultError", // Route name
            "{id}", // URL with parameters
            new { controller = "Home", action = "ThrowError" }, // Parameter defaults,
            new { id = @"\d{5,}" } //Constraint
        );

并在您的控制器中有一个ThrowError(int id)方法抛出您想要的错误或重定向到错误页面。

于 2013-04-30T06:30:10.580 回答
0

为什么不在您的 WebAPI 方法中包含处理程序?

public SomeModel Get(int id)
{
    if (id != null && id <= 7)
         return something();

    throw new HttpResponseException(HttpStatusCode.{BadRequest|Forbidden|SomethingElse});
}
于 2013-04-30T08:17:56.980 回答