【发布时间】:2018-09-11 13:32:01
【问题描述】:
我正在学习 .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 }
);
但它不起作用。有什么建议吗?
【问题讨论】:
-
什么是不工作的?你怎么知道?服务器是否抛出错误?
-
您确定要更改默认路由吗?你考虑过attribute routing吗?
标签: c# .net asp.net-web-api get