我有一个 Web api,其中有 2 种方法,一种没有参数,两种具有不同类型的参数(字符串和整数)。调用字符串方法时它不起作用...我在这里缺少什么?
public class MyControllerController : ApiController
{
public IHttpActionResult GetInt(int id)
{
return Ok(1);
}
public IHttpActionResult GetString(string test)
{
return Ok("it worked");
}
}
WebApiConfig.cs:
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 }
);
}
My Call:
/api/Controller/MyString //不起作用
/api/MyController/1 //工作
我收到以下错误:
参数字典包含“TestAngular.Controllers.MyControllerController”中方法“System.Web.Http.IHttpActionResult GetInt(Int32)”的不可空类型“System.Int32”的参数“id”的空条目。可选参数必须是引用类型、可为 null 的类型,或者声明为可选参数。
我的请求中缺少什么?
这是我的解决方案:
无需更改 webapiconfig.cs 文件中的默认路由
仅向字符串函数添加一条路由:
[Route("Api/MyController/GetString/{test}")]
public IHttpActionResult GetString(string test)
http://localhost:49609/api/MyController/GetString/stringtest http://localhost:49609/api/MyController/GetString/stringtest
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)