如何通过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)
答案 0 :(得分:0)
对于复杂的模型,你应该像斯蒂芬所说的那样做。对于简单模型,您可以使用EditorForModel。它将呈现模型的所有必要字段。
@using (Html.BeginForm("DownloadFile", "User", FormMethod.Post))
{
@Html.EditorForModel()
}