首页 > 解决方案 > 不在 asp core web api 中输入 HTTPPOST Action

问题描述

我在其中创建了一个 Web 服务asp core2.2并从客户端发送数据(angular6)

我在Admin区域的控制器。

这个启动:

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseSignalR(routes =>
        {
            routes.MapHub<CrudRealTime>("/CrudRealTime");
        });
        app.UseCors("CorsPolicy");
        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "areas",
                template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
            );
        });
    }

我使用此地址访问Create RolesRoleManager 控制器中的 Actoin:

https://localhost:44390/api/role/createrole

但它没有进入行动。当我使用这个角色时它可以工作:https://localhost:44390/api/role/GetRoles但我不知道问题是什么,我该如何解决这个问题。

上次我运行该项目并从客户端提供数据但现在它不起作用。我没有更改服务器代码中的任何内容。

我怎么解决这个问题 ????

角色动作

 [HttpPost("CreateRole")]
    public async Task<IActionResult> CreateRole([FromBody]RolePostModel model)
    {
        if (ModelState.IsValid)
        {

            var result = await _roleManag.CreateAsync(new Role(model.description, model.rolelevel, model.name));
            if (result.Succeeded)
            {
                return Ok(Messagesresx.Success_Add_Role);
            }
            else
            {
                return Content(Messagesresx.Fail_Add_Role_In_DataBase);
            }
        }
        else
        {
            return BadRequest();
        }
    }

标签: asp.netasp.net-web-apiasp.net-core-2.0asp.net-core-webapiasp.net-core-2.1

解决方案


你能通过 Postman 打 CreateRole 吗?如果您在 Json 中发布,请尝试将接受标头设置为 application/Json。如果它成功命中,则意味着您需要在 WebAPI 启动中配置 InputFormatter 以接受您从 Angular 应用程序发布的格式,或者尝试更改您发送的格式。


推荐阅读