小编mrc*_*ode的帖子

如何将多部分/表单数据发送到 ASP.NET Core Web API?

我正在尝试将图像和文本字段发送到 API 端点,但收到了

不支持的内容类型 'multipart/form-data; 边界=---------------------------81801171514357

这是一个 ASP.NET Core 2.1 Web API。我有这个:

[HttpPost("/api/account"), Authorize]
public void SaveUser(UserModel info)
Run Code Online (Sandbox Code Playgroud)

还有我的模型:

    [JsonProperty(PropertyName = "avatar")]
    [DataType(DataType.Upload)]
    public IFormFile Avatar { get; set; }

    [JsonProperty(PropertyName = "name")]
    [DataType(DataType.Text)]
    public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

然后我使用axios

    var formData = new FormData();
    formData.append("avatar", imageFile);
    formData.append("name", name);
    axios.post("/api/account", formData);
Run Code Online (Sandbox Code Playgroud)

我希望这个方法能运行,而不是抛出异常。但是如何?我试图添加:

[Consumes("application/json", "multipart/form-data")]
Run Code Online (Sandbox Code Playgroud)

但没有成功。

然后我尝试:

[HttpPost("/api/account"), Authorize]
public void SaveUser([FromForm]UserModel info)
Run Code Online (Sandbox Code Playgroud)

该方法运行,但信息对象上的属性为空:(

更新: 解决方案,不要使用 JsonProperty PropertyName。使用变量名。

c# asp.net asp.net-core asp.net-core-webapi

15
推荐指数
1
解决办法
3万
查看次数

使用NEST批量插入ElasticSearch

我尝试向elasticsearch添加100k产品,但是当我尝试获取时:{"验证失败:1:没有添加请求;"}

我的代码:

        var Node = new Uri("......");
        var ConnectionPool = new SniffingConnectionPool(new[] { Node });
        var Config = new ConnectionConfiguration(ConnectionPool)
                    .SniffOnConnectionFault(false)
                    .SniffOnStartup(false)
                    .SniffLifeSpan(TimeSpan.FromMinutes(10));
        var Client = new ElasticsearchClient(Config);

        var AllProducts = Product.GetProducts();
        var SPl = AllProducts.Split(100); // Split into 100 collections/requests

        var COll = new List<ElasticsearchResponse<DynamicDictionary>>();

        foreach (var I in SPl)
        {
            var Descriptor = new BulkDescriptor();

            foreach (var Product in I)
            {
                Descriptor.Index<Product>(op => op.Document(Product));
            }

            COll.Add(Client.Bulk(Descriptor));
        }
Run Code Online (Sandbox Code Playgroud)

AllProducts包含此对象的列表:

public class Product
{
 public int AffiliateNr { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# elasticsearch nest elasticsearch-net

7
推荐指数
1
解决办法
8887
查看次数