从视图传递到控制器的空值

时间:2014-07-18 09:41:38

标签: c# asp.net-mvc-3

商品报告查看:

   @model PMEX.CSR.Models.ReportModel
   @{
     ViewBag.Title = "Commodity Report";
   }

   <div>
    <table>
        <tr>
            <td>
                @{
                    if (Model != null)
                    {
                    @Html.ActionLink("Download PDF Report", "DownloadReportPDF", Model);
                    }
                }
            </td>               
        </tr>
    </table>
    </div>

报告控制器cs文件:

  public ActionResult DownloadReportPDF(ReportModel model)
    {
        // to do some stuff
        return View("Commodity");
    }

报告模型

 public class ReportModel
   {
    public string testValue { get; set; }

    public DataTable dt { get; set; }
    public LikeFilterModel LikeFilterModelObj { get; set; }
    // [Required]
    // public string SearchText { get; set; }
    public GridModels GridDataModel { get; set; }
    /// <summary>
    /// Represents that datagrid has rows in it.
    /// </summary>
    public bool isValue { get; set; }
    }

我在视图中收到的模型

我通过actionlink在Controller上收到的模型。

正如您所看到的,我在控制器上收到的所有内容都是空的。请告诉我这里出了什么问题?

我想将相同的模型传递给我在View上收到的控制器。

2 个答案:

答案 0 :(得分:1)

Html.ActionLink期待routeValues而不是您的对象模型。检查参考here

...

答案 1 :(得分:0)

您无法以这种方式将数据传递给控制器​​,来自视图的任何数据都应该在查询字符串中进行POST或传递,例如。

if (Model != null)
{
    @using (Html.BeginForm("DownloadPDFReport", FormMethod.Post))
    {
        @Html.HiddenFor(x => x.Property1)
        @Html.HiddenFor(x => x.Property2)
        ...
        <input type="submit" value="Download PDF Report" />
    }
}