假设我们有一个Person对象,包含了名字和工作经历。工作经历又由多个Job对象组成。我们想要在Razor页面中更新Job集合时,需要进行如下操作。
public IActionResult OnPost()
{
//获取表单提交的Job数据
var jobs = Request.Form["person.workhistory.jobs"];
//将json格式的数据转换成Job对象集合
var serializerOptions = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
};
var newJobs = JsonSerializer.Deserialize>(jobs, serializerOptions);
//更新Job集合
for (var i = 0; i < newJobs.Count; i++)
{
Model.Person.WorkHistory.Jobs[i].CompanyName = newJobs[i].CompanyName;
Model.Person.WorkHistory.Jobs[i].Title = newJobs[i].Title;
Model.Person.WorkHistory.Jobs[i].StartDate = newJobs[i].StartDate;
Model.Person.WorkHistory.Jobs[i].EndDate = newJobs[i].EndDate;
}
return Page();
}
在OnPost方法中,我们首先获取表单提交的数据,并将其序列化为Job对象集合。然后,我们逐个更新Person对象中的Job集合。最后,我们返回当前页面。
需要注意的是,在表