Я новичок в c # и застрял в атрибутах маршрутов.
Теперь я хочу создать API для пользователей GET, POST, PUT и DELETE.
Я не знаю, как описать проблему, и самое знакомое, что я нашел, не является правильным ответом на мой случай.
Как использовать атрибут Route для связывания строки запроса с веб-API?
[HttpGet]
public class UsersController : ApiController
{
// GET /api/users
[HttpGet]
[Route("")]
public IEnumerable<User> GetUsers()
{
return _context.Users.ToList();
}
[Route("api/users/{FirstName?}/{LastName?}")]
public IEnumerable<User> GetByFirstName(string FirstName = null, string LastName = null)
{
var users = Enumerable.Empty<User>();
if (FirstName != null && LastName != null)
users = _context.Users.Where(u => (u.FirstName == FirstName) && (u.LastName == LastName));
else if (FirstName != null)
users = _context.Users.Where(u => u.FirstName == FirstName);
else if (LastName != null)
users = _context.Users.Where(u => u.LastName == LastName);
return users;
}
}
Это то, что у меня есть для моего контроллера, а ниже то, что у меня есть для WebApiConfig.cs
В основном я использовал config.MapHttpAttributeRoutes ();
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
Почему я не могу вызвать API по
http://localhost:50861/api/users?LastName=someName&FirstName=someName
Любой совет очень важен. Или любые ссылки на эту проблему также полезны! Спасибо
Редактировать: я только что обновил другую часть своего кода. Так как, когда я использую API выше для запроса, я получил результат этого /api/users.