У меня есть следующий код в моем мы апи:Почему моя маршрутизация веб-API не работает?
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
//Set default content to json
var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
config.Routes.MapHttpRoute(
name: "DefaultApi2",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Вот conreoller и actionmethod Я пытаюсь подключиться к:
[Authorize]
public class DeviceConnectionController : ApiController
{
[HttpGet]
public string Status(int deviceId)
{
string stats = "1234:";
stats += FSK_APNLink.ConnectionStatus.Connected.ToString();
return stats;
}
}
Теперь следующий запрос прибудете дает мне 404:
http://localhost:50000/api/deviceconnection/status/45
однако если удалить параметр из метода действия выполняет следующее правильно:
http://localhost:50000/api/deviceconnection/status
Измените параметр в действии контроллера как id, а не на deviceId – eiximenis
Вы уверены, что он выполняет «правильно»? Не-nullable int получает значение 'null', потому что он является необязательным и не установлен? –