我有使用WebApi的MVC项目。我试图在我的数据库中调用更新存储过程。更新通过我的webapiresponse工作,我的项目暂停,我收到错误"未处理的类型' System.NullReferenceException'发生在mscorlib.dll"。对于我的生活,我无法弄清楚它的含义是无效的。
这是我的MVC控制器中的方法:
public void UpdateNCMSID(string ncmsId)
{
contractorId = UserInfo.targetCompanyID;
CommonClient.UpdateNCMSID(contractorId, ncmsId);
}
以下是WebApi客户端方法:
public static HttpContent ConstructNCMSContent(int CompanyID, string vchNCMSIDNumber)
{
return new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("CompanyID", CompanyID.ToString()),
new KeyValuePair<string, string>("vchNCMSIDNumber", vchNCMSIDNumber.ToString())
});
}
public Task<int> UpdateNCMSID(int CompanyID, string vchNCMSIDNumber)
{
try
{
var content = ConstructNCMSContent(CompanyID, vchNCMSIDNumber);
var uri = new Uri("api/UpdateNCMSID/", UriKind.Relative);
var response = PerformPost<int>(uri, content, true);
return response;
}
catch (Exception ex)
{
throw ex;
}
}
以下是WebApi服务中的方法:
[HttpPost]
[Route("api/UpdateNCMSID")]
public IHttpActionResult UpdateNCMSID(ParametersNCMSModel pm)
{
var result = _db.sxUpdateNCMSIDNumberByCompanyID(pm.CompanyID, pm.vchNCMSIDNumber);
return Ok(result);
}
两个参数都有值,下面的代码中出现错误:
protected async Task<T> PerformPost<T>(Uri uri, HttpContent content, bool IsAuthenticated)
{
_webApiClient = new HttpClient { BaseAddress = _baseAddress };
if (IsAuthenticated) AppendDefaultHeaders(_webApiClient);
var webApiResponse = await _webApiClient.PostAsync(uri,content);
var responseContent = await webApiResponse.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<T>(responseContent);
}
错误发生在这一行:
var webApiResponse = await _webApiClient.PostAsync(uri,content);
程序停止并重新启动后,我可以看到更新确实发生在数据库中。有人请告诉我这里缺少什么吗?
非常感谢任何帮助!