모델 :양식 및 목록과 MVC 3 : 기본 모델 바인더 및 EditorFor
public class MyObject
{
public IList<Entry> Entries;
}
public class Entry
{
public string Name { get; set; }
}
내가 기본 EditorFor (모델 => model.Entries) 이름을 사용하는 경우/ID 값은 다음과 같습니다
<input type="text" value="" name="Entries[0].Name" id="Entries_0__Name">
나는이 같은 EditorFor 템플릿을 만들려면 대신하는 경우
:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<CMS.Models.MyObject>>" %>
<div class="list">
<%
for (int i = 0; i < Model.Count; i++)
{ %>
<div class="object" id="<%: i %>">
<%: Html.EditorFor(model => Model[i]) %>
<%: Html.ValidationMessageFor(model => Model[i]) %>
</div>
<% } %>
</div>
방출 된 이름/ID 값은 다음과 같습니다
<input type="text" value="" name="Entries.[0].Name" id="Entries__0__Name">
따라서 이름에는 속성 이름과 [0] 사이에 마침표가 있고 id에는 인덱스 번호의 왼쪽에 추가 밑줄이 있습니다. 기본 모델 바인더에서는 작동하지 않습니다. 기본 모델 바인더에서 작동하는 방법이 있습니까?
왜이 작업을 수행 하시겠습니까? 유효성 검사 메시지가 포함되어 있는지 찾고 계시지 않습니까? 아니면 ID 태그가 설정된 div 태그가 있어야합니까? –
목록의 끝에 다른 요소를 추가하기 위해 일반 jQuery 기반 "추가"옵션을 가질 수 있도록이 작업을 수행하고 있습니다. 해당 HTML로 목록을 내보내는 것은 "추가"제네릭을 훨씬 쉽게 만듭니다. 하나의 섹션이 N 개의 참조를 필요로하는 양식 (각각의 참조는 다중 속성을 가짐), 다른 부분은 다른 것에 대해 N 개의 세부 사항을 필요로하는 양식 (각 부분은 여러 속성이 있음) 등을 생각해보십시오. – Cymen