我在我的控制器中使用EF将记录保存到数据库中的代码如下。System.ArgumentNullException被用户代码未处理
[Route("api/abc/PostValues")]
public HttpResponseMessage PostValues(p_abc p_abc)
{
if (ModelState.IsValid)
{
db.p_abc.Add(p_abc);
db.SaveChanges();
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, p_abc);
response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = p_abc.p_abc_id }));
return response;
}
else
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
}
数据写入数据库罚款。
但在下面一行
response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = p_abc.p_abc_id }));
我得到以下异常
System.ArgumentNullException was unhandled by user code
HResult=-2147467261
Message=Value cannot be null.
Parameter name: uriString
Source=System
ParamName=uriString
StackTrace:
at System.Uri..ctor(String uriString)
at App.Controllers.abcController.p_abc(p_abc p_abc) in c:\xxx\abcController.cs:line 127
at lambda_method(Closure , Object , Object[])
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
InnerException:
请让我知道如何像你有没有路由相匹配的数据修复此异常
你能确认你有你'WebApiConfig.cs'为'DefaultApi'条目?它应该看起来像这样:'config.Routes.MapHttpRoute(“DefaultApi”,“...' – McCee