【发布时间】:2018-06-30 00:25:57
【问题描述】:
这是我的表单代码:
<div class="form-group">
<label for="text">product name:</label>
<input id="name" type="text" class="form-control" placeholder="Enter product name" name="product[0].name">
</div>
<div class="form-group">
<label for="text">product detail:</label>
<input id="detail" type="text" class="form-control" placeholder="Enter prodcut detail" name="product[1].detail">
</div>
<button id="btn" type="submit" class="btn btn-default">Submit</button>
这是我的javascript
<script>
$(function postProduct() {
$('#btn').click(function () {
var productName = document.getElementById("name").value;
var productDetail = document.getElementById("detail").value;
var dimensions = [ productName, productDetail];
var keys = $.map(dimensions, function (value, key) {
return key;
});
if (productName == '' || productDetail == '') {
alert("Please Fill All Fields");
} else {
$.ajax({
type: 'post',
url: "api/product/addproduct",
data: keys,
dataType: 'json',
success: function (result) {
},
error: function (error) {
}
});
}
});
});
</script>
我的控制器:
[HttpPost]
[Route("api/product/addproduct")]
public IActionResult AddProduct([FromBody] string[] addproduct)
{
var pProductName= addProduct[0];
var pProductDetail= addProduct[1];
Product NewProduct = new Product();
{
NewProduct.ProductName= pProductName;
NewProduct.ProductDetail = pProductDetail;
}
_db.Products.Add(NewProduct);
_db.SaveChanges();
//create a new route for post method by id
return CreatedAtRoute(new { id = addproduct}, addproduct);
}
我要做的是在用户将信息输入表单并点击提交按钮之后。信息将被传递给控制器并将信息保存到数据库中。我遇到的问题是表单中的数据是 Json 类型,但是,我的控制器是一个数组。
可以把表格转成数组吗?
【问题讨论】:
-
你在 asp.net 上使用 web api 控制器吗?如果是这样,您可以在您的发布请求中发送一个带有“application/json”标头的 json 数组,它会自行将 json 反序列化为一个数组。
-
@Lucas 是的,我在 asp.net 上使用 web api。你能给我一个这样做的例子吗?谢谢。
标签: c# jquery ajax asp.net-core-mvc