提交后将Model值传递回Controller Method

时间:2016-06-20 20:41:04

标签: asp.net-mvc view controller

我有一个要求用户上传Excel文件的视图,我的控制器读取excel文件并将结果作为模型返回。该模型包含名为AssingednUmbers public List<String> AssignedNumbers { get; set; }

的字符串列表

值显示在视图页面上。一切正常,直到这一步。现在我有一个名为DownloadFile的方法

[HttpPost]
        public FileResult DownloadFile(OnvoyModel model)

它有一个Model条目并返回csv文件。转换和一切都很好。但我传递给DownloadFile的模型总是空的。上传Excel文件并在用户单击下载按钮后返回页面上的结果(Numbers)后,控制器会调用DownloadFile方法,但模型为空。如何将模型与其中的List一起从之前传递回我的Controller

 // Looping through my List that comes from the Model
<table>
    @foreach (var Number in Model.AssignedNumbers) { 
        <li>
            @Number


        </li>
        @Html.HiddenFor(x => x.AssignedNumbers);
    }
</table>

<td>
///Submitting to download the new list and calling the Method
   @using (Html.BeginForm("DownloadFile", "PhoneBookProcessing", FormMethod.Post))
   {
      @Html.Action("DownloadFile", new { model = Model.AssignedNumbers })
   }
    <div class="form-group">
        <button class="btn btn-default" type="submit">Download This File</button>
    </div>
   }

模型

public class OnvoyModel
    {
        public List<String> AssignedNumbers { get; set; }

    }

1 个答案:

答案 0 :(得分:0)

刚刚发现。 将其作为隐藏字段传递 视图     for(int item = 0; item&lt; subjectsCount; item ++)                 {                      @ Model.AssignedNumbers [项目]的ToString()
                    @ Html.HiddenFor(x =&gt; x.AssignedNumbers [item])                 }             }