2015-01-17 3 views
1

ListBoxFor에서 선택한 값을 컨트롤러에 게시하려고 시도하지만 항상 선택된 값 하나만 있습니다.MVC ListBox 하나의 값만 게시

내 모델 :

public IEnumerable<SelectListItem> RegionsList { get; set; } 
public string[] Regions { get; set; } 

내보기 :. "ID"3, 5의 jQuery $ ("# 지역") 두 항목을 선택

@Html.ListBoxFor(m => m.Regions, Model.RegionsList) 

임, 발() 제공 나 :

$("#Regions").val(); 
["3", "5"] 

그러나 포스트 후에 나의 모델은 있습니다

"3" 

문자열 []을 IEnumerable로 변경하려고했으나 결과가 없습니다. 컨트롤러에 게시하는 동안 항상 하나의 값입니다. 문제가 무엇인지 아십니까?

+0

당신의'public IEnumerable RegionsList {get; 세트; }'속성을 public으로 MultiSelectList RegionsList {get; 세트; }' –

답변

0

적절하게 해결책을 찾았습니다. devexpress 모델 바인딩에 문제가 있습니다 :https://www.devexpress.com/Support/Center/Question/Details/T124733

+0

당신은 당신이 질문하는 재산 표를해야한다 !! (코드는 MVC에서 잘 작동합니다) –

+0

예, 죄송합니다. 이것이 devexpress 라이브러리에 문제가 있다는 것을 나는 모른다. – paw3lx

0

여러 개의 선택된 항목을 유지해야하는 경우 일반적으로 SelectList 모델을 구현합니다. 그렇다면 다음과 같은 다중 선택 목록을 사용할 수 있습니다.

@Html.ListBoxFor(
    x => x[i].SelectedItems, 
    new MultiSelectList(Model[i].Items, "Value", "Text", Model[i].SelectedItems) 
) 
+1

'i '가 어디에서 왔는지 보여주기 위해 코드를 확장 할 가치가 있습니다. 즉 for 루프입니다. 조금 더 명확하게 말하십시오. –

+0

Devexpress GridView 테이블을 편집하는 동안 이것을 사용하여 Im을 추가하는 것을 잊어 버렸습니다. 방금 devexpress없이 새로운 프로젝트를 시작했습니다. 단순한 모델, 컨트롤러 및 뷰만 있습니다. 그리고 모든 것이 좋습니다. 그래서 모델 devexpress 모델 바인딩에 문제가 있습니다. – paw3lx

관련 문제