Метод получения .Net Web Api - PullRequest
       5

Метод получения .Net Web Api

0 голосов
/ 11 сентября 2018

Я учусь .NET Web Api.

Так что это метод GET по умолчанию

// GET: api/UserProfiles/5
[ResponseType(typeof(UserProfile))]
public IHttpActionResult GetUserProfile(int id)
{
    UserProfile userProfile = db.UserProfiles.Find(id);
    if (userProfile == null)
    {
        return NotFound();
    }

    return Ok(userProfile);
}

Это моя модель:

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Phone { get; set; }
}

Как мне сделать поиск по Name вместо ID.Из того, что я понимаю, мне нужно изменить GetUserProfile(int id) на GetUserProfile(string name), а в WebApiConfig.cs мне нужно изменить с

config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

на

 config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{name}",
            defaults: new { name = RouteParameter.Optional }
        );

Но это не работает.Любые советы, как это сделать?

1 Ответ

0 голосов
/ 11 сентября 2018

Нет, вы не должны менять маршрут. Просто вы все еще используете GetUserProfile(string name), и запрос будет /api/UserProfiles?name=...

...