C# PostAsJsonAsync找不到请求的URI
我目前正在学习如何使用OWIN和Katana创建C#server 我试图回复一个帖子,但不幸的是,它没有找到功能。C# PostAsJsonAsync找不到请求的URI,c#,post,asynchronous,owin,katana,C#,Post,Asynchronous,Owin,Katana,我目前正在学习如何使用OWIN和Katana创建C#server 我试图回复一个帖子,但不幸的是,它没有找到功能。 这就是我所拥有的:这是一个用户端类,它通过POST(postsjsonasync())发送用户数据(用户名和密码) 在服务器端,我有一个控制器,看起来像这样: [RoutePrefix("api/register/")] class RegisterController : ApiController { public async Task<IHttpActionRe
这就是我所拥有的:
这是一个用户端类,它通过POST(postsjsonasync())发送用户数据(用户名和密码)
在服务器端,我有一个控制器,看起来像这样:
[RoutePrefix("api/register/")]
class RegisterController : ApiController
{
public async Task<IHttpActionResult> Post(KeyValuePair<string, string> userData)
{
// I never get inside here
}
}
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = ConfigureWebApi();
app.UseWebApi(config);
}
}
编辑:在我的控制器类之前将路由更改为RoutePrefix。将控制器类公开
[Route("api/register/")]
public class RegisterController : ApiController
不公开意味着Web API系统无法发现控制器及其操作。我要看的第一件事是您安装了哪些NuGet软件包,并确保在启动类中一切正常。您的Startup类应该如下所示:
[RoutePrefix("api/register/")]
class RegisterController : ApiController
{
public async Task<IHttpActionResult> Post(KeyValuePair<string, string> userData)
{
// I never get inside here
}
}
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = ConfigureWebApi();
app.UseWebApi(config);
}
}
如果您在IIS上托管,请确保已安装以下NuGet软件包:
- Json
- Microsoft.AspNet.WebApi.Client
- Microsoft.AspNet.WebApi.Core
- Microsoft.AspNet.WebApi.Owin
- Microsoft.Owin.Host.System.Web
- Microsoft.Owin
- 奥温
public
:
[Route("api/register/")]
public class RegisterController : ApiController
{
public async Task<IHttpActionResult> Post(KeyValuePair<string, string> userData)
{
// I never get inside here
}
}
用这个来代替:
config.MapHttpAttributeRoutes();
以前
app.UseWebApi(config);
要做到这一点,您必须为web api中的每个ruote添加前缀,但我想这更容易理解,而且我听说它将成为vNext的标准。感谢您对新属性路由的建议。是的,我同意,如果我必须在他们每个人面前设定路线,那会更容易、更干净!哎呀,我不知道有人在我面前有正确的解决办法。
config.MapHttpAttributeRoutes();
app.UseWebApi(config);