Asp.net mvc ASP.NET MVC 2强类型htmlhelper,索引
视图:Asp.net mvc ASP.NET MVC 2强类型htmlhelper,索引,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,视图: 使用允许您指定html属性的重载复选框: while (part != null) { if (part.NodeType == System.Linq.Expressions.ExpressionType.MemberAccess) { MemberExpression memberExpressionPart = (MemberExpression)part; nameParts.Push(me
使用允许您指定html属性的重载复选框:
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;
}
}
比如说,
CheckBoxFor(TModel)(HtmlHelper(TModel), Expression(Func(TModel, Boolean)), IDictionary(String, Object))
基于表达式的助手理解索引的能力还不在产品中。它将出现在下一个预览版本中(MVC2RC之后的任何版本)。请参阅。这不正确。在这种情况下,让我问一下,如果我无法从视图模型中获取id而不使用硬编码字符串,那么
CheckBoxFor
“强类型”帮助器方法的好处是什么?这与使用${Html.CheckBox(“foo”+fIndex,m.AllCatalogs[i].Checked)}
的方法相同,后者看起来更好。
<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" />
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;
}
}
CheckBoxFor(TModel)(HtmlHelper(TModel), Expression(Func(TModel, Boolean)), IDictionary(String, Object))
${Html.CheckBoxFor(x => x[fIndex].Checked, new { id = "foo" + fIndex) })}