2015-01-26 1 views
0

Как я могу передать полную модель, как по 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

Вам необходимо визуализировать элементы управления ('input',' textarea', 'select') для ваших свойств модели. Добавление существующей модели к параметрам маршрута было бы немного бессмысленным - '@using (Html.BeginForm (« DownloadFile »,« User », Model, FormMethod.Post)), - и это не сработает, если вы моделируете сложные свойства или коллекции в любом случае –

+0

Мне действительно нужно работать со всеми свойствами модели, и когда я пытаюсь сделать что-то вроде этого '@using (Html.BeginForm (« DownloadFile »,« Пользователь », Model, FormMethod.Post)), я получаю потенциально опасный Exeption 'System.Web.HttpRequestValidationException (0x80004005):' - может быть, потому что модель слишком сложна и огромна, имеет IEnum и т. д. – AleksP

+0

Не могли бы вы отправить код своей модели? –

ответ

0

Для сложной модели вы должны сделать, как сказал Стивен. Для простой модели вы можете использовать EditorForModel. Он отобразит все необходимые поля модели.

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