如何获得同一类的对象的集合张贴回控制器与指定的html表单值
本文关键字:控制器 张贴回 表单 html 集合 对象 何获得 一类 | 更新日期: 2023-09-27 18:08:40
我已经将生成的控制器实体框架的编辑功能转换为模型的视图。我不是一次编辑处理一个模型实例,而是发送所有实例的列表,并在剃刀视图的Html.BeginForm
中循环它们。当我发布表单时,我尝试将列表作为参数传递到我的控制器。我想要一个列表的所有实例与他们所有的更新值,但列表张贴为空。我看不出这是一个加价问题。请帮助。
这是我的控制器:
public ActionResult Allotment(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
List<ClaimFile> claimFiles = db.ClaimFiles.Where(b => b.ClaimID == id).ToList();
if (claimFiles.Count == 0)
{
return HttpNotFound();
}
ViewBag.DocumentListID = new SelectList(db.DocumentLists, "DocumentListID", "Description", claimFiles.FirstOrDefault().DocumentListID);
return View(claimFiles);
}
视图:
@model List<Harry.ClaimFile>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<h4>ClaimFile</h4>
<hr />
@foreach (var claimfile in Model)
{
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => claimfile.ClaimFileID)
<div class="form-group">
@Html.LabelFor(model => claimfile.DocumentListID, "DocumentListID", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("DocumentListID", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => claimfile.DocumentListID, "", new { @class = "text-danger" })
</div>
</div>
}
<input type="submit" value="Save" class="btn btn-default" />
}
然后在post控制器上,当我点击razor视图上的save按钮时,我收到null:
[HttpPost]
public ActionResult Allotment(List<ClaimFile> claimFiles)
{
//List<ClaimFile> claimFiles = null. This is my problem
}
请告诉我我做错了什么,或者给我一个解决问题的方法。谢谢。
我还没有尝试将列表发送回控制器,
我在网上看到这篇文章,也许对你有帮助。