다음 코드는 많이 삭제되었지만 근본적으로 내가 찾고있는 것은 다음과 같습니다 :MVC HTML 편집기 템플릿을 사용하여 비 순차 접두사 컬렉션 색인을 생성하는 방법은 무엇입니까?
동적으로 추가 할 수있는 동안 질문과 해당 답변 선택을 편집하고 싶습니다./페이지에서 질문/대답 선택을 제거하십시오. 이상적으로, 내 항목에 대한 HtmlFieldPrefix는 비 순차적이지만 Html.EditorFor()는 순차 색인을 사용합니다.
내가 답변 선택의는 IEnumerable을 포함하는 질문 뷰 모델이 있습니다
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Models.QuestionViewModel>" %>
<%=Html.HiddenFor(m => m.QuestionId)%>
<%=Html.EditorFor(m => m.AnswerChoices) %>
그리고 도움말 선택 : 내 질문 부분보기 (Question.ascx)에서
public class QuestionViewModel
{
public int QuestionId { get; set; }
public IEnumerable<AnswerChoiceViewModel> AnswerChoices { get; set; }
}
을,이이 편집기 템플릿 (AnswerChoiceViewModel.ascx) :
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Models.AnswerChoiceViewModel>" %>
<%=Html.HiddenFor(m => m.AnswerChoiceId)%>
<%=Html.TextBoxFor(m => m.Name)%>
Question.ascx 같은 모양의 출력은 다음과 같습니다 이미 쓴
<input type="hidden" id="QuestionId" value="1" />
<input type="hidden" id="Question.AnswerChoices[e1424d5e-5585-413c-a1b0-595f39747876].AnswerChoiceId" value="1" />
<input type="hidden" id="Question.AnswerChoices[e1424d5e-5585-413c-a1b0-595f39747876].Name" value="Answer Choice 1" />
<input type="hidden" id="QuestionId" value="2" />
<input type="hidden" id="Question.AnswerChoices[633db1c3-f1e6-470b-9c7f-c138f2d9fa71].AnswerChoiceId" value="2" />
<input type="hidden" id="Question.AnswerChoices[633db1c3-f1e6-470b-9c7f-c138f2d9fa71].Name" value="Answer Choice 2" />
:
<input type="hidden" id="QuestionId" value="1" />
<input type="hidden" id="Question.AnswerChoices[0].AnswerChoiceId" value="1" />
<input type="hidden" id="Question.AnswerChoices[0].Name" value="Answer Choice 1" />
<input type="hidden" id="QuestionId" value="2" />
<input type="hidden" id="Question.AnswerChoices[1].AnswerChoiceId" value="2" />
<input type="hidden" id="Question.AnswerChoices[1].Name" value="Answer Choice 2" />
는 내가 알고 싶은 것은 페이지는 다음과 같이 렌더링 할 수 있도록 내가 EditorFor에게 사용자 정의 GUID 인덱스를 제공 할 수있는 방법입니다 현재 컨텍스트의 접두사 인덱스를 가져 와서 숨겨진 ".Index"필드에 저장하여 비 순차 인덱스가 올바르게 바인딩 될 수 있도록 도우미 메서드입니다. EditorFor가 인덱스를 어떻게 할당하여 내가 그것을 오버라이드 할 수 있는지 알고 싶을 뿐이다.