Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core .NetCore 3.1 Webapi未使用post字符串_Asp.net Core_.net Core_Asp.net Core Webapi - Fatal编程技术网

Asp.net core .NetCore 3.1 Webapi未使用post字符串

Asp.net core .NetCore 3.1 Webapi未使用post字符串,asp.net-core,.net-core,asp.net-core-webapi,Asp.net Core,.net Core,Asp.net Core Webapi,我将webapi解决方案从2.1升级到3.1 我的Startup.cs文件包含: public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddMvc().AddNewtonsoftJson(); .. public void Configure(IApplicationBuilder app, IHostingEnvironment env)

我将webapi解决方案从2.1升级到3.1

我的Startup.cs文件包含:

public void ConfigureServices(IServiceCollection services)
{
   services.AddControllers();
   services.AddMvc().AddNewtonsoftJson();
..

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

   app.UseRouting();
   app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
..
我的控制器以以下内容开始:

[ApiController]
[Route("api/[controller]/[action]")]
public class MyFooController : Controller
以下是我的行动:

[HttpPost]
public string MyFooAction(string value)
因此,我呼吁采取另一种简单解决方案的行动:

var param = new NameValueCollection();
param["value"] = "3";
using (var client = new WebClient())
{
    var data = client.UploadValues(url, "POST", param);

在调试中,调用获取操作路由,但值始终为null。 我也试过使用[FromBody],但都是一样的

我阅读了3.1中的内容,希望是ControllerBase类中的inherint controller,但我有许多返回Json(obj)的操作,这在ControllerBase类中不存在,但仅在Contreller类中存在:这就是问题所在吗

提前谢谢

var data=client.UploadValues(url,“POST”,param)

调用获取操作路由,但值始终为null

使用
WebClient.UploadValues
方法将值发布到服务器,您可以尝试将
[FromForm]
属性应用到操作参数,如下所示

[HttpPost]
public string MyFooAction([FromForm]string value)
{

    //...
测试结果

此外,您还可以使用
WebClient.UploadString
方法通过请求体发布数据来实现相同的需求

using (var client = new WebClient())
{
    client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
    var data = client.UploadString(url, "POST", "3");
    //...
}
作用方法

测试结果

var data=client.UploadValues(url,“POST”,param)

调用获取操作路由,但值始终为null

使用
WebClient.UploadValues
方法将值发布到服务器,您可以尝试将
[FromForm]
属性应用到操作参数,如下所示

[HttpPost]
public string MyFooAction([FromForm]string value)
{

    //...
测试结果

此外,您还可以使用
WebClient.UploadString
方法通过请求体发布数据来实现相同的需求

using (var client = new WebClient())
{
    client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
    var data = client.UploadString(url, "POST", "3");
    //...
}
作用方法

测试结果


Hi@CodeIT,关于这个案例有什么更新吗?你用我分享的解决方案解决问题了吗?嗨,菲,对不起。。。不练习。。。我现在做得好吗?嗨@CodeIT,这个案子有什么新进展吗?你用我分享的解决方案解决问题了吗?嗨,菲,对不起。。。不练习。。。我现在做得好吗?