2012-04-06 2 views
2

아래 링크에는 응용 프로그램에서 사용중인 여러 텍스트 상자를 추가 할 수있는 추가 단추가 있습니다.ViewModel 배열 문자열 속성으로 여러 텍스트 상자를 바인딩하는 방법은 무엇입니까?

http://jsfiddle.net/cN5SR/200/

지금 나는 내 뷰 모델로 문자열 값의 배열을 결합 할 수있는 방법을 알고 싶어요.

의이 뷰 모델에서 내 재산 아래와 같은 경우 가정 해 봅시다 : 나는 정적을 한 경우 면도기 구문을 사용하여 다음과 같이

Public class MyViewmodel 
{ 
    Public string[] players { get; set; } 
} 
+1

모든 텍스트 상자의 이름이 "플레이어"인 경우 ModelBinder는 각 텍스트 상자 값을 배열에 추가합니다. 다른 옵션은 각 텍스트 상자에 players [0], players [1] 등의 인덱스를 지정하는 것입니다. 그런 다음 인덱스를 관리하고 하나만 건너 뛰지 마십시오. –

+0

기본적으로 배열 문자열을 만들 것입니까? – updev

+0

각 텍스트 상자가 같은 이름이라면, 기본적으로 "player = player1 & player = player2 & player = player3"을 지정하면 ModelBinder –

답변

0

스티븐 샌더슨 (Steven Sanderson)은 정확히이 주제에 very nice blog post이라고 썼습니다.

+0

에 의해 배열이 자동 생성됩니다.이 답변은 1 년 이상 지난 링크입니다. 이 사이트에서 답변의 핵심 부분을 게시하거나 게시 위험이 삭제되는 것이 더 나을 때 도움이됩니다. [링크보다 간신히 답을 제시하는 FAQ를 참조하십시오.] (http :// 원하는 경우 링크를 포함 할 수 있지만 '참조'로만 사용하십시오. 대답은 링크가 필요없이 독자적으로 서 있어야합니다. – Taryn

1

, 나는 그것을 할 것이다.

이 다음과 같은 마크 업 결과
@for(int i = 0; i < Model.players.Length; i++) 
{ 
    @Html.EditorFor(m => m.players[i]); 
} 

: 당신은 다음과 컨트롤러에 게시로 보이는 자바 스크립트를 사용하여 두 개의 입력을 추가한다면

<input class="text-box single-line" id="players_0_" name="players[0]" type="text" value="Bob" /> 
<input class="text-box single-line" id="players_1_" name="players[1]" type="text" value="Sam" /> 

, 기본 바인더는 4를 가진 플레이어 배열을 생성합니다 항목. 나는 당신이 후딱 한 것을 보길 바랍니다.

<input class="text-box single-line" id="players_2_" name="players[2]" type="text" value="Pete" /> 
<input class="text-box single-line" id="players_3_" name="players[3]" type="text" value="Dirk" /> 

몇 가지 문제점이 있습니다. 이전에이 작업을 수행했으며 삭제와 관련된 몇 가지 문제가있었습니다. 정확한 문제와 내가 지금이 문제를 해결하기 위해 무엇을했는지 기억이 안납니다.

관련 문제