【发布时间】:2017-02-24 15:48:52
【问题描述】:
我的问题是第一个 Get 方法是从这个 http 请求中调用的: http://localhost:56690/api/testelements/?name=aeg
由于它有一个字符串参数,我难道不希望我的 this 达到第二个(字符串重载)方法吗?如何让它达到第二个(字符串重载)方法?
这是我在 c# 中的 web api 控制器
// GET api/<controller>
public IEnumerable<TestElement> Get()
{
return testelements;
}
// GET api/<controller>/searchString
//[HttpGet, Route("api/testelements/{name=name}")]
public IEnumerable<TestElement> Get(string searchString)
{
return Array.FindAll(testelements, s => s.name.Contains(searchString));
}
对于我的角度服务,我有这个打字稿代码
search(term: string): Observable<testelement[]> {
return this.http
.get(`api/testelements/?name=${term}`)
.map(response => response.json() as testelement[]);
}
我的 WepApiConfig.cs
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
我不想让它覆盖这个函数!:
public IHttpActionResult Get(int id)
{
var testelement = testelements.FirstOrDefault((p) => p.id == id);
if (testelement == null)
{
return NotFound();
}
return Ok(testelement);
}
【问题讨论】:
标签: c# rest angular asp.net-web-api asp.net-web-api2