gpt4 book ai didi

jquery - asp mvc3,带有包含 json 数组的隐藏输入的帖子表单

转载 作者:行者123 更新时间:2023-12-01 01:27:14 25 4
gpt4 key购买 nike

我有一个这样的表格:

<form id="orderForm">
<input name="Customer" value="Mr.Test" />
<input name="ProductLines" value='[{"Product":{"Name":"Orange","Price":"10"},"amount":"2","total":"20"}, {"Product":{"Name":"Apple","Price":"5"},"amount":"3","total":"15"}]' />
</form>

和带有 View 模型的 Controller :

[HttpPost]
public ActionResult Save(OrderViewModel vm)
{
//...
}

public class OrderViewModel
{
public OrderViewModel() { ProductLines = new List<OrderProductViewModel>(); }
public string Customer { get; set; }
public IEnumerable<OrderProductViewModel> ProductLines { get; set; }
}

public class OrderProductViewModel
{
public ProductViewModel Product { get; set; }
public int Amount { get; set; }
public int Total { get; set; }
}

public class ProductViewModel
{
public string Name { get; set; }
public int Price { get; set; }
}

是否可以使用 jquery 发布此表单

      $.post('@Url.Action("Save")', $("#orderForm").serialize(), function (data) {//...}, "json");

并在服务器端填充 ProductLines 集合。 (目前始终为空)

谢谢!

最佳答案

发布对象需要转换为json对象并以内容类型json发布。尝试以下方法可能会有所帮助

var results = {};
$.each($("#orderForm").serializeArray(), function (index, item) {
results[item.name] = item.value;
});
results.ProductLines = $.parseJSON(results.ProductLines);
$.ajax({
url: '@Url.Action("Save")',
type: 'post',
data: JSON.stringify(results),
contentType: "application/json; charset=utf-8",
dataType:'json',
success: function (data) {
alert("hi");
}
});

关于jquery - asp mvc3,带有包含 json 数组的隐藏输入的帖子表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9860773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com