2013-08-05 4 views
0

을 컨트롤러로 데이터를 전달하지 않는 I 클래스라는 한 "AirLineSession"내 관점에서@ Html.HiddenFor() MVC 3

public ExtendedList listCo { get; set; } 
    public ExtendedList listBa { get; set; } 

    public bool SortbyRating { get; set; } 
    public AirLineSession() 
    { 
     listCo = new ExtendedList(); 
     listBa = new ExtendedList(); 
    } 

내가 가진 :

@Html.HiddenFor(m => m.listBa) 
@Html.HiddenFor(m => m.listCo) 
@Html.DropDownListFor(a => a.SortbyRating, new[] { new SelectListItem { Text = "Sort by rating", Value = "true" }, new SelectListItem { Text = "Sort by frice", Value = "false" } }) 

I 이 뷰를 정상화하면 SortByRating의 데이터 만 Controller의 모델에 전달되고 listBa 및 listCo는 전달되지 않습니다. 나는 이유를 모른다.
누구나 도와 주셔서 감사합니다.

+0

'ExtendedList' 클래스의 코드를 게시 할 수 있습니까? 그 이유는 asp.net mvc가 'ExtendedList' 복합 유형에 대해 모든 Hiddens를 만드는 방법을 모르기 때문입니다. 이 경우 객체 및 컬렉션의 각 필드에 hiddens를 추가해야합니다. –

+0

FormCollection을 두 번째 인수로 사용하고 키와 값에 대해 해당 인수를 확인해 보았습니까 ??? –

+1

Html.HiddenFor는 기본적으로 기본 유형 (문자열, 정수, 십진수, 열거 등) 만 "저장"할 수 있습니다. 그것은 복잡한 클래스를 포함 할 수 없다. 그리고 당신이 가지고있는 ExtendedList는 클래스이다. – Jakub

답변

0

ExtendedList 클래스의 코드를 게시 할 수 있습니까? 이유는 asp.net mvc가 ExtendedList 복합 유형에 대해 모든 Hiddens를 작성하는 방법을 알지 못하기 때문입니다. 이 경우, 샘플, 두 모음에 대한 객체와 수집의 각 필드에 hiddens을 추가해야합니다 : 또한

@for(var i = 0; i < Model.listCo.Lenght; i++) 
{ 
    @Html.HiddenFor(model => model.listCo[i].Property1) 
    @Html.HiddenFor(model => model.listCo[i].Property2) 
    @Html.HiddenFor(model => model.listCo[i].Property3) 
} 

그리고 :

@for(var i = 0; i < Model.listBa.Lenght; i++) 
{ 
    @Html.HiddenFor(model => model.listBa[i].Property1) 
    @Html.HiddenFor(model => model.listBa[i].Property2) 
    @Html.HiddenFor(model => model.listBa[i].Property3) 
} 
0

당신이 끝난 HTML 헬퍼를 들어 사용하는 경우, 확인 당신은 모델에 의해 그들의 가치를 관련 뷰로 전달했습니다. 하지만 그렇지 않다면 ViewBag과 같은 동적 도구에 값을 입력하고 다음 코드를 사용해야합니다.

@Html.Hidden("listBa", ViewBag.listba) 
@Html.Hidden("listCo", ViewBag.listco)