所以我正在尝试将用户数据从一个控制器传递到另一个控制器。我在这里读过很多关于它的信息---> http://www.dotnet-tricks.com/Tutorial/webapi/F2aL081113-Passing-multiple-complex-type-parameters-to-ASP.NET-Web-API.html这家伙似乎正在做我想做的事情,他正在使用.PostAsJsonAsync来做。
这是控制器1,它接收用户数据并基本上将其重新路由到另一个控制器以进行身份验证。
public ActionResult IDB(IDBUser i)
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:64819");
HttpResponseMessage result = client.PostAsJsonAsync("/api/Participant/Authenticate", i).Result;
if (result.IsSuccessStatusCode)
{
return View();
}
else { // hits this breakpoint with 500 server error
return View("Index");
}
}
}
}
这似乎成功地让它到另一个控制器(下面),因为我得到500错误。但是,我在方法的开头就有一个断点,它似乎永远不会出现。
[System.Web.Http.ActionName("Authenticate")]
[System.Web.Http.HttpPost]
public HttpResponseMessage Authenticate(IDBUser u)
{ //breakpoint it neve hits is on this line
bool Authenticate = false;
CredentialTester ct = new CredentialTester(u.password, u.username);
bool isAuthenticatedInt = ct.IntTest();
bool isAuthenticatedAcp = ct.AcpTest();
if (isAuthenticatedInt == true || isAuthenticatedAcp == true)
{
Authenticate = true;
return Request.CreateResponse(HttpStatusCode.OK, Authenticate);
}
else Authenticate = false;
return Request.CreateResponse(HttpStatusCode.NotAcceptable);
}
任何帮助都会受到赞赏。谢谢大家!
UPDATE :我能够看到错误,它列在这里:
{StatusCode:500,ReasonPhrase:'Internal Server Error',Version:1.1,Content:System.Net.Http.StreamContent,Headers:{Pragma:no-cache X-SourceFiles:=?UTF-8?B? ?QzpcVXNlcnNcYTU4NDYxOVxEb2N1bWVudHNcYXAxMDk1MTQtcWEtYXVvdG1hdGlvblxXaVFhLlZhbC1JZFxNVkNcV2lRYS5WYWwtSWQuV2ViU2VydmljZVxXaVFhLlZhbC1JZC5XZWJTZXJ2aWNlXFdpUWEuVmFsLUlkLldlYlNlcnZpY2VcYXBpXFBhcnRpY2lwYW50XEF1dGhlbnRpY2F0ZQ == =访问控制允许来源:*访问控制允许报头:内容类型,接受访问控制允许的方法:GET,POST,PUT,DELETE,OPTIONS的Cache-Control:NO-缓存日期:星期四,2016年5月12日17:07:39 GMT服务器:Microsoft-IIS / 8.0 X-AspNet-版本:4.0.30319 X-Powered-By:ASP.NET内容长度:2307内容类型:application / JSON; charset = utf-8到期:-1}}
我的Access-Control-Origin看起来有问题。我已经在我的web.config文件中进行了适当的调整(之前我遇到过类似的错误),但没有运气。