【发布时间】:2021-06-01 06:55:18
【问题描述】:
您好,我对 ASP.NET 非常陌生,我想使用 post 从 java 脚本中发布数据列表,并将数据传递给控制器,以便将数据保存在数据库中。 目前我卡在控制器部分,任何人都可以指导控制器部分。我将提供我到目前为止开发的代码
JAVASCRIPT 部分
function UpdateData() {
var things = [
{ ID: 1, QUANTITY: 1, CODE: 1, DESCRIPTION: 'ONE'},
{ ID: 2, QUANTITY: 2, CODE: 2, DESCRIPTION: 'ONE'},
{ ID: 3, QUANTITY: 3, CODE: 3, DESCRIPTION: 'THREE'}
];
things = JSON.stringify({ 'things': things });
return ajaxPromise({
url: UpdateUrl,
type: "POST",
contentType: "application/json",
data: things
}).then(function (result) {
}, function (e) {
console.error(e);
alert(e.responseText);
});
}
DTO
public class DataDTO
{
public int ID{ get; set; }
public int QUANTITY{ get; set;}
public int CODE{ get; set; }
public string DESCRIPTION{ get; set; }
}
控制器部分
[HttpPost]
public async Task<IHttpActionResult> UpdateData(List<DataDTO> data){
var results = new List<DataDTO>();
foreach (var item in results)
{
var newRecords = new newData();
newRecords.ID= item.ID;
newRecords.QUANTITY= item.QUANTITY;
newRecords.CODE= item.CODE;
newRecords.DESCRIPTION= item.DESCRIPTION;
db.newData.Add(newRecords);
}
await db.SaveChangesAsync();
return Ok("Save successfully"); }
【问题讨论】:
-
您似乎在控制器
UpdateData(List<DataDTO> data)中循环了一个空列表。参数data应该被foreach循环。而不是results。 -
嗨,现在我能够将数据从 javascript 传递到我的控制器,并且能够通过 for each 函数,但是现在只要它运行时就会出现问题 await db.SaveChangesAsync();或 db.SaveChanges();在每个循环中它不断向我抛出异常错误
标签: asp.net-mvc database http-post dto