gpt4 book ai didi

c# - ASP.Net MVC - 带集合的模型,提交

转载 作者:太空狗 更新时间:2023-10-29 21:28:36 25 4
gpt4 key购买 nike

我有一个看起来像的模型

public class Patient
{
private ICollection<Refill> _refills = new List<Refill>();
public int Id { get; set; }
public string FirstName { get; set; }

public virtual ICollection<Refill> Refills
{
get { return _refills; }
set { _refills = value; }
}
}

public class Refill
{
public int Id { get; set; }

public RefillActivityStatus RefillActivityStatus { get; set; }
public DateTime? RefillDate { get; set; }
public RefillType RefillType { get; set; }
public string RXNumber { get; set; }
}

这是我正在尝试做的事情。我想在 View 中填充这些以及当用户单击保存更改时。我想保存 Entity Framework 。我遇到的问题是我这样做的观点

@foreach (var m in Model.Refills)
{
@Html.HiddenFor(model=>m.Id)
<div class="editor-label">
@Html.LabelFor(model => m.RXNumber)
</div>
<div class="editor-field">
@Html.EditorFor(model => m.RXNumber)
</div>
}

我想在 Controller 中做这样的事情

[HttpPost]
public ActionResult Details(Patient patient)
{
Patient p = db.Patients.Find(patient.Id);
db.Entry(p).State = EntityState.Modified;
db.Entry(p).CurrentValues.SetValues(patient);
// Would include Refill changes too but it doesn't
db.SaveChanges();

return View(p);
}

但是,Refills 不会在 HttpPost 上传播。它只是空的,我需要做什么来修复它?

最佳答案

在你的 foreach 中试试这个:

@for (int i = 0; i < Model.Refills.Count(); i++)
{
@Html.Hidden("Refills[" + i + "].Id", Model.Refills[i].Id)
<div class="editor-label">
@Html.Label("Refills[" + i + "].RXNumber", Model.Refills[i].RXNumber)
</div>
<div class="editor-field">
@Html.Editor("Refills[" + i + "].RXNumber")
</div>
}

关于c# - ASP.Net MVC - 带集合的模型,提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14563471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com