在我的Web API我有一个文件控制器,带有两个简单动作:“的参数字典包含无效项”错误,网页API
[AllowAnonymous]
public class DocumentController : ApiController
{
public String Get(int id)
{
return "test";
}
public String Get(string name)
{
return "test2";
}
}
以下URL(执行第一功能)正常工作:
但这个URL(应该执行第二功能):
抛出这个错误:
{ "message": "The request is invalid.", "messageDetail": "The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'xx.yy.Document Get(Int32)' in 'API.Controllers.DocumentController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter." }
这是WebApiConfig的MapHttpRoute
:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我在做什么错?请指教。
谢谢,你能解释一下为什么我还需要包含'[RoutePrefix(“api/Document”)]'? – user3378165
它定义了控制器的基本路线。你可以不用,但是你需要改成'[Route(“api/Document/{id:int}”)]' - 你的选择。 – Richard
完美工作,非常感谢您的明确答案! – user3378165