我正在使用Entity Framework创建一个ASP.NET MVC项目
我有两个模型:
ModelA
(字符串名称,ICollection列表)ModelB
(int days)
有没有什么方法可以将JSON数组(或者更好的是对象列表)连同绑定的属性一起沿着发送到控制器?
我试着把整个对象作为JSON发送,它工作了,但是我想知道ASP.NETMVC是否有一个工具可以更好地做到这一点。
chatGPT告诉我,我可以使用jQuery做到这一点:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> CreateWithInstalment(
[Bind("Name,Fee,Discount,Fine,Id")] PaymentCondition paymentCondition,
[FromBody] List<InstalmentDTO> instalmentDTOList)
{
}
字符串
提交:
<input type="submit"
onclick="SendInstalmentArray();"
value="Create"
class="btn btn-primary" />
型
阵法:
arrayInstalments.push({ Number, Days, Percentage, PaymentMethodId });
型
jQuery:
function SendInstalmentArray() {
console.log("sending array...");
if (ValidateObject()) {
setPaymentCondition();
$.ajax({
contentType: 'application/json',
dataType: 'json',
type: 'POST',
url: "/PaymentConditions/CreateWithInstalment",
data: JSON.stringify(arrayInstalments),
success: function () {
console.log("array sent");
},
error: function () {
console.log("error on sending array");
}
});
}
}
型
我看到结果是错误415,我发送了2个请求,它不工作,但我不知道如何使用ASP.NET工具而不是JSON来发送整个事情
1条答案
按热度按时间uttx8gqw1#
当我研究时,我发现Ronaldoz说的是真的,所以我所做的有助于解决问题:
我添加到binded发送数组在同一个请求:
第一个月
然后我做了一个隐藏的输入,并将Json数组写入其中,以便一起读取和发送,然后在提交按钮上创建了一个函数:
<input type="hidden" name="instalmentList" id="instalmentList" value="" />
个<input type="submit" value="Create" onsubmit="UpdateHiddenArray();" class="btn btn-primary" />
个函数(arrayInstalments是包含wanted list的数组):
字符串
最后,在控制器上,我请求数组并转换为DTO类:
型
这对我很有效,我用通常的绑定对象asp.net的方法得到了对象,然后得到了我的列表。