【发布时间】:2016-01-26 08:55:15
【问题描述】:
我有一个问题,我想用自定义名称调用 MVC Api 方法。
我按照here 的描述更改了 WebApi.config
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id="test" }
);
写了一堂课
public class MissingCardBoxModelController : ApiController
{
// GET api/missingcardboxmodel
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/missingcardboxmodel/5
public string Get(string id)
{
return id;
}
public string GetTrackingNumber(string parcelLabelNumber)
{
string trackingNumber = "some number";
return trackingNumber;
}
// POST api/missingcardboxmodel
public void Post([FromBody]string value)
{
}
// PUT api/missingcardboxmodel/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/missingcardboxmodel/5
public void Delete(int id)
{
}
}
但是我不能通过http://localhost:58528/api/MissingCardBoxModel/GetTrackingNumber/123456调用方法
我收到消息
在控制器“MissingCardBoxModel”上没有发现任何动作 匹配请求。
为什么我不能调用方法?
【问题讨论】:
-
你用的是什么web api版本?
-
尝试将参数中的
parcelLabelNumber更改为id。 -
我使用 Webapi Controller v1
-
@BrendanGreen 好的,问题解决了。我知道问题出在哪里。我以为变量名 id 只是一个占位符。
标签: c# asp.net-mvc asp.net-mvc-4 asp.net-web-api