我正在尝试将图像和文本字段发送到 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。使用变量名。
我尝试向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)