Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用指定的html表单值将同一类的对象集合发回控制器_C#_Asp.net Mvc_Entity Framework_Razor_Html.beginform - Fatal编程技术网

C# 如何使用指定的html表单值将同一类的对象集合发回控制器

C# 如何使用指定的html表单值将同一类的对象集合发回控制器,c#,asp.net-mvc,entity-framework,razor,html.beginform,C#,Asp.net Mvc,Entity Framework,Razor,Html.beginform,我已使用模型视图转换生成的控制器实体框架的编辑功能。我不是一次编辑处理一个模型实例,而是发送一个所有实例的列表,并在razor视图中的Html.BeginForm中循环它们。当我发布表单时,我尝试将列表作为参数传递到我的控制器中。我想要一个所有实例及其更新值的列表,但是该列表被发布为空。我看不出这是一个标记问题。请帮忙 这是我的控制器: public ActionResult Allotment(int? id) { if (id == null) { retur

我已使用模型视图转换生成的控制器实体框架的编辑功能。我不是一次编辑处理一个模型实例,而是发送一个所有实例的列表,并在razor视图中的
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);
}
public ActionResult分配(int?id)
{
if(id==null)
{
返回新的HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
List claimFiles=db.claimFiles.Where(b=>b.ClaimID==id.ToList();
如果(claimFiles.Count==0)
{
返回HttpNotFound();
}
ViewBag.DocumentListID=新建SelectList(db.DocumentLists,“DocumentListID”,“Description”,claimFiles.FirstOrDefault().DocumentListID);
返回视图(索赔文件);
}
视图:

@型号列表
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
索赔文件

@foreach(模型中的var索赔文件) { @Html.ValidationSummary(true,“,new{@class=“text danger”}) @Html.HiddenFor(model=>claimfile.ClaimFileID) @LabelFor(model=>claimfile.DocumentListID,“DocumentListID”,htmlAttributes:new{@class=“control label col-md-2”}) @DropDownList(“DocumentListID”,null,htmlAttributes:new{@class=“form control”}) @Html.ValidationMessageFor(model=>claimfile.DocumentListID,“,new{@class=“text danger”}) } }
然后,当我点击razor视图上的保存按钮时,在post控制器上收到null:

[HttpPost]
public ActionResult Allotment(List<ClaimFile> claimFiles)
{
    //List<ClaimFile> claimFiles = null. This is my problem
}
[HttpPost]
公共行动结果分配(列出索赔文件)
{
//List claimFiles=null。这是我的问题
}

请告诉我我做错了什么,或者给我一个解决这个问题的方法。谢谢。

我还没有尝试将列表发送回控制器

我在网上看到了这篇文章,也许会有帮助

[HttpPost]
public ActionResult Allotment(List<ClaimFile> claimFiles)
{
    //List<ClaimFile> claimFiles = null. This is my problem
}