如何将模型从视图传递给controlLer

时间:2015-01-26 01:09:55

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

如何通过BeginForm等完整模型传递...从视图到控制器

    @model Business.Models.MyModel
    @using (Html.BeginForm("DownloadFile", "User", FormMethod.Post)) //new {model = this.Model} NULL too
    { 
         <input type="submit" value="OK" />
    }

    [HttpPost]
    public ActionResult DownloadFile(MyModel model)
    {
        TODO: now is null
    }

因为现在总是为空

型号:

    public  IEnumerable<ReportInfo> Rank { get; set; }

    public Int32 SiteId
    {
        get { return UserUtils.CurrentSiteID; }
        set { UserUtils.CurrentSiteID = value; }
    }

    public Int32 PageSize { get; set; }

    public Int32 PageCount { get; set; }

    public Boolean UsePaging { get; set; }

    public Int32 CurrentPageNumber { get; set; }

    public DateTime DateFrom { get; set; }

    public DateTime DateTo { get; set; }

    public String Sort { get; set; }

    public String Order { get; set; }

    public String SeachedWord { get; set; }

    public String JSON { get; set; }

    public List<SelectListItem> Sites { get; set; }

    /*Scrip method*/

需要传递两个IEnum fiels并且在没有渲染的情况下耦合简单字段。我知道隐藏的字段但是:当我获得排名并通过IEnum。我总是得到关于危险上下文的异常System.Web.HttpRequestValidationException (0x80004005)

1 个答案:

答案 0 :(得分:0)

对于复杂的模型,你应该像斯蒂芬所说的那样做。对于简单模型,您可以使用EditorForModel。它将呈现模型的所有必要字段。

    @using (Html.BeginForm("DownloadFile", "User", FormMethod.Post))
    { 
     @Html.EditorForModel()
    }