C# 同时向同一模型项ASP.NET Core中插入两行数据
是否可以在相同的模型项中以相同的形式添加数据,但像这样添加不同的数据 请参见我随附的屏幕截图中的C# 同时向同一模型项ASP.NET Core中插入两行数据,c#,asp.net,asp.net-core,C#,Asp.net,Asp.net Core,是否可以在相同的模型项中以相同的形式添加数据,但像这样添加不同的数据 请参见我随附的屏幕截图中的Kodeakunmodel项。对不起,我的英语不好 我的模型课: public class Transaksi { [Key] public int Id { get; set; } public string Kodeakun { get; set; } public string Keterangan { get; set; } [DataType(Dat
Kodeakun
model项。对不起,我的英语不好
我的模型课:
public class Transaksi
{
[Key]
public int Id { get; set; }
public string Kodeakun { get; set; }
public string Keterangan { get; set; }
[DataType(DataType.Date)]
public DateTime Tanggal { get; set; }
[DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = false)]
public decimal Debit { get; set; }
[DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = false)]
public decimal Kredit { get; set; }
}
我的控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Kodeakun,Keterangan,Tanggal,Debit,Kredit")] Transaksi transaksi)
{
if (ModelState.IsValid)
{
var debit = new Transaksi
{
Kodeakun = transaksi.Kodeakun,
Keterangan = transaksi.Keterangan,
Tanggal = transaksi.Tanggal,
Debit = transaksi.Debit,
Kredit = 0
};
var kredit = new Transaksi
{
Kodeakun = transaksi.Kodeakun,
Keterangan = transaksi.Keterangan,
Tanggal = transaksi.Tanggal,
Debit = 0,
Kredit = transaksi.Kredit
};
_context.Add(debit);
_context.Add(kredit);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
}
[HttpPost]
[ValidateAntiForgeryToken]
公共异步任务创建([Bind(“Id,Kodeakun,Keterangan,Tanggal,Debit,Kredit”)]Transaksi Transaksi)
{
if(ModelState.IsValid)
{
var借方=新交易
{
Kodeakun=transaksi.Kodeakun,
凯特兰根=transaksi.凯特兰根,
Tanggal=transaksi.Tanggal,
借方=交易借方,
Kredit=0
};
var kredit=新的Transaksi
{
Kodeakun=transaksi.Kodeakun,
凯特兰根=transaksi.凯特兰根,
Tanggal=transaksi.Tanggal,
借方=0,
Kredit=transaksi.Kredit
};
_上下文。添加(借方);
_添加(kredit);
wait_context.SaveChangesAsync();
返回重定向到操作(名称(索引));
}
}
以下是截图:
我的结局是这样的:
是的,您可以通过制作一个
ViewModel
并在其中添加Transaksi
类的两个属性来实现这一点
public class TransactionVM
{
public Transaksi First {get; set;}
public Transaksi Second {get; set;}
}
现在在Create视图中,您可以绑定TransactionVM
model,而不是Transaksi
model。现在,您的create方法签名应该如下所示
public async Task<IActionResult> Create(TransactionVM transaction)
公共异步任务创建(TransactionVM事务)
你可以通过
transaction.First
和transaction.Second
很抱歉,在处理请求时发生了一个未经处理的异常。NullReferenceException:对象引用未设置为对象的实例。您是否将您的创建视图与TransactionVM
绑定,并正确命名输入字段?@David Budiman您的创建方法签名应与我在上述答案中提供的签名类似。不要在参数中添加[Bind]
注释。