[英]List from ViewModel is empty in controller
今天我發現了一個非常奇怪的問題。 我在 .net core mvc 中編寫了應用程序。
我有兩個模型:
public class Package{
public Int PackId{get; set;};
//some fields
public ICollection<Shipment> shipments{get; set;}//list with other models!
}
public class Shipment{
Int Id{get; set;};
//some fields
[ForeignKey]
Int PackId {get; set;};
Package package{get;set;}
}
所以你可以看到一個包裹有很多批貨物,但一批貨物只屬於一個包裹(一對多關系)。
此外,我還有 ViewModel:
AddViewModel{
//there are some fields from package
//and here are some fields from shipment
[BindProperty]
public ICollection<Shipment> shipments
}
我的控制器方法:
[HttpPost]
AddShipment(AddViewModel viewModel){
//some code here
return View(viewModel);
}
[HttpGet]
Add(){
var viewModel = new AddViewModel ();
return View("AddShipment",viewModel)}
而且... viewModel
中來自視圖的所有內容viewModel
填充,但斷點顯示public ICollection<Shipment> shipments
為空,這很奇怪。 有什么問題嗎? 如何綁定或標記視圖上的某些輸入應綁定為該列表中的下一個模型?
試試這個:
[HttpGet]
Add() {
var shipmentList = context.Shipments.ToList();
var viewModel = new AddViewModel { shipments = shipmentList };
return View("AddShipment", viewModel);
}
所以,有一個解決方案。 我們需要在構造函數中創建空列表。 否則,空指針存在一些問題。
AddViewModel{
//there are some fields from package
//and here are some fields from shipment
public AddViewModel(){
shipments = new List<Shipment>();
}
[BindProperty]
public ICollection<Shipment> shipments
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.