在ASP.NET Web API中,我们可以使用ApiControllerAttribute特性来标记控制器类,并将其识别为Web API控制器。可选参数是指在Web API方法中,可以将某些参数声明为可选的,即可以选择性地不传递该参数。
以下是一个示例,展示了如何使用ApiControllerAttribute和可选参数:
using System;
using System.Web.Http;
[ApiController] // 使用ApiControllerAttribute特性标记控制器类
public class UserController : ApiController
{
// GET api/user
// 可选参数id,如果不传递id,默认为0
public IHttpActionResult Get(int id = 0)
{
if (id == 0)
{
return Ok("No ID provided");
}
else
{
return Ok($"ID: {id}");
}
}
}
在上面的代码中,我们创建了一个名为UserController的控制器类,并使用ApiControllerAttribute特性标记它。然后,我们定义了一个名为Get的方法,它接受一个可选参数id。如果不传递id参数,它的默认值将为0。
在Get方法中,我们首先检查传递的id值是否为0。如果是0,则返回一个带有"No ID provided"消息的Ok结果。否则,返回一个带有"ID: {id}"消息的Ok结果,其中{id}是传递的id值。
这样,我们就可以通过访问/api/user来调用Get方法。如果不传递id参数,将返回"No ID provided"消息。如果传递id参数,将返回"ID: {id}"消息。
请注意,使用ApiControllerAttribute特性标记控制器类将启用一些默认行为,例如自动HTTP状态码选择和格式化响应。你还可以根据需要添加其他特性来自定义控制器和方法的行为。