public class Foo { public bool Checked {get;set;}}
보기 :ASP.NET MVC 2 강력한 형식의 Html 헬퍼, 인덱스
<viewdata model="Foo[] fooList" />
<for each="var f in fooList">
${Html.CheckBoxFor(x=>x[fIndex].Checked)}
</for>
윌 출력 :
<input id="Checked" name="Checked" type="checkbox" value="true" />
<input name="Checked" type="hidden" value="false" />
<input id="Checked" name="Checked" type="checkbox" value="true" />
<input name="Checked" type="hidden" value="false" />
<input id="Checked" name="Checked" type="checkbox" value="true" />
<input name="Checked" type="hidden" value="false" />
문제가 System.Web.Mvc.ExpressionHelper.GetExpressionText
가 ID/이름에 인덱스를 포함하지 않습니다.
모든 체크 상자에 레이블을 추가하려는 경우 (모든 ID가 동일하기 때문에) 문제가 발생합니다.
어떻게하면 제대로 처리 할 수 있습니까? MVC의 소스에서
=>
while (part != null) {
if (part.NodeType == System.Linq.Expressions.ExpressionType.MemberAccess) {
MemberExpression memberExpressionPart = (MemberExpression)part;
nameParts.Push(memberExpressionPart.Member.Name);
part = memberExpressionPart.Expression;
}
else {
//arghhhh... [index] != MemberAccess :(
break;
}
}
오늘은 영웅입니다. :피 –