Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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
Asp.net 在视图中显示列表,然后将其传递给HttpPost_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Model Binding - Fatal编程技术网

Asp.net 在视图中显示列表,然后将其传递给HttpPost

Asp.net 在视图中显示列表,然后将其传递给HttpPost,asp.net,asp.net-mvc,asp.net-mvc-4,model-binding,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Model Binding,嗨,这很简单,但不适合我 这是我的视图: @model iLeadsTest.ViewModels.SaveViewModel @using (Html.BeginForm("Save", "Clients", FormMethod.Post)) { <div> <table class="table"> <thead> <tr>

嗨,这很简单,但不适合我

这是我的视图

@model iLeadsTest.ViewModels.SaveViewModel
@using (Html.BeginForm("Save", "Clients", FormMethod.Post))
{ 
    <div>
        <table class="table">
            <thead>
                <tr>
                    <th>Pin Number</th>
                    <th>First Name</th>
                    <th>Last Name</th>
                </tr>
            </thead>
            <tbody>
                @for (int i = 0; i < Model.FileClasses.Count; i++)
                {
                    <tr>
                        <td>@Html.DisplayFor(m => m.FileClasses[i].PinNumberProperty)
                        </td>
                        <td>@Html.DisplayFor(m => m.FileClasses[i].FirstNameProperty)
                        </td>
                        <td>@Html.DisplayFor(m => m.FileClasses[i].LastNameProperty)
                        </td>

                    </tr>
                }
            </tbody>
        </table>
    </div>
    @Html.HiddenFor(m=>m.FileName);
    <input class="btn btn-primary" type="submit" name="Submit" id="Submit" value="Upload" />
}
public class SaveViewModel 
{
     public string FileName { get; set; }
     public List<Clients> FileClasses { get; set; }
}
@model.ViewModels.SaveViewModel
@使用(Html.BeginForm(“保存”、“客户端”、FormMethod.Post))
{ 
密码
名字
姓
@对于(int i=0;im.FileClasses[i].PinNumberProperty)
@DisplayFor(m=>m.FileClasses[i].FirstNameProperty)
@DisplayFor(m=>m.FileClasses[i].LastNameProperty)
}
@Html.HiddenFor(m=>m.FileName);
}
我的视图模型

@model iLeadsTest.ViewModels.SaveViewModel
@using (Html.BeginForm("Save", "Clients", FormMethod.Post))
{ 
    <div>
        <table class="table">
            <thead>
                <tr>
                    <th>Pin Number</th>
                    <th>First Name</th>
                    <th>Last Name</th>
                </tr>
            </thead>
            <tbody>
                @for (int i = 0; i < Model.FileClasses.Count; i++)
                {
                    <tr>
                        <td>@Html.DisplayFor(m => m.FileClasses[i].PinNumberProperty)
                        </td>
                        <td>@Html.DisplayFor(m => m.FileClasses[i].FirstNameProperty)
                        </td>
                        <td>@Html.DisplayFor(m => m.FileClasses[i].LastNameProperty)
                        </td>

                    </tr>
                }
            </tbody>
        </table>
    </div>
    @Html.HiddenFor(m=>m.FileName);
    <input class="btn btn-primary" type="submit" name="Submit" id="Submit" value="Upload" />
}
public class SaveViewModel 
{
     public string FileName { get; set; }
     public List<Clients> FileClasses { get; set; }
}
公共类SaveViewModel
{
公共字符串文件名{get;set;}
公共列表文件类{get;set;}
}

为什么当我转到控制器中的方法时,我会得到一个空列表?

因为你没有为
客户端的属性创建任何表单控件(而且你也不应该-如果你在POST方法中需要数据,只需从存储库中再次获取数据)@StephenMuecke该数据是从文件提交的,我需要显示它,然后在视图中传递它,然后传递到我的帖子来保存它。不管数据来自哪里。视图中的代码仅显示循环中的项目。它不会将这些内容发布到您的httppost操作中,因为您没有为这些内容生成任何输入字段。从文件中获取是什么意思?您的数据来自了解数据的控制器。生成表单控件将其全部发送到客户端,然后将其全部原封不动地发送回来,这将是毫无意义的额外开销,因为您只是在显示文件类。如果你想发布它,那么你应该使用。