【发布时间】:2020-01-13 10:20:47
【问题描述】:
我尝试向 ProductsController 发送多语言对象,控制器接受没有错误的方法并且对象具有正确的 Id 和标记,但 Names 和 Briefs 数组为空!
我尝试了 HttpPOST、HttpPUT、HttpOptions 但没有成功。
JS代码:
var dataToSend = new FormData();
var Names = $.makeArray();
var Briefs = $.makeArray();
Names.push({ LangCode: 'en', Value: 'TEST' });
Names.push({ LangCode: 'de', Value: 'TOST' });
Briefs.push({ LangCode: 'en', Value: 'FOO' });
Briefs.push({ LangCode: 'de', Value: 'BAR' });
dataToSend.append("Id", productId);
dataToSend.append("Tag", "SampleTag");
dataToSend.append("Names", Names);
dataToSend.append("Briefs", Briefs);
$.ajax({
type: 'PUT',
contentType: 'application/json; charset=utf-8',
url: "/api/products/" + productId,
data: dataToSend,
processData: false,
contentType: false,
success: function (data) {
DoST();
},
error: function (xhr, textStatus, error) {
var response = JSON.parse(xhr.responseText);
DoST();
}
});
C# 代码如下: 我使用 LangValue 对象通过应用程序传递不同的语言值,它按预期工作,但不通过 ajax 填充!
public class LangValue
{
public string LangCode { get; set; }
public string Value { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Tag { get; set; }
public IList<LangValue> Names { get; set; }
public IList<LangValue> Briefs { get; set; }
}
[HttpPut("{id}")]
public async Task<IActionResult> PutProductLangs(int id, Product product)
{
PRODUCT Id and Tag are filled but Names and Briefs arrays are EMPTY!!!
return NoContent();
}
【问题讨论】:
标签: jquery ajax asp.net-core controller asp.net-ajax