ASP.NET MVC 2强类型的HtmlHelper,索引 [英] ASP.NET MVC 2 strongly typed htmlhelper, indexes
问题描述
公共类Foo {公共BOOL经过{获取;集;}}
查看:
<可视数据模型=富[] fooList/>
<用于每=中fooList变种F>
$ {Html.CheckBoxFor(X =&X的催化剂[fIndex] .Checked)}
< /为>
将输出:
<输入ID =选中NAME =选中类型=复选框VALUE =真/>
<输入名称=选中类型=隐藏值=FALSE/><输入ID =选中NAME =选中类型=复选框VALUE =真/>
<输入名称=选中类型=隐藏值=FALSE/><输入ID =选中NAME =选中类型=复选框VALUE =真/>
<输入名称=选中类型=隐藏值=FALSE/>
问题是, System.Web.Mvc.Ex pressionHelper.GetEx pressionText
不包括ID /名称索引。
这会导致问题的情况下,我想添加一个标签为每个复选框(因为所有id`s都是一样的)。
任何想法如何正确处理呢?
从MVC源=>
同时(部分!= NULL){
如果(part.NodeType == System.Linq.Ex pressions.Ex pressionType.MemberAccess){
MemberEx pression memberEx pressionPart =(MemberEx pression)的一部分;
nameParts.Push(memberEx pressionPart.Member.Name);
部分= memberEx pressionPart.Ex pression;
}
其他{
// arghhhh ... [指数]!= MemberAccess :(
打破;
}
}
恩$ P $基于pssion-佣工了解指标的能力不是在产品还没有。这将是在未来的preVIEW发布(MVC 2 RC以后无论发生什么事)。请参见 HTTP://aspnet.$c$cplex.com/WorkItem/ View.aspx?WorkItemId = 4970 。
public class Foo { public bool Checked {get;set;}}
View:
<viewdata model="Foo[] fooList" />
<for each="var f in fooList">
${Html.CheckBoxFor(x=>x[fIndex].Checked)}
</for>
Will output:
<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" />
Problem is that System.Web.Mvc.ExpressionHelper.GetExpressionText
does not include index in id/name.
That leads to problems in case I want to add a label for every checkbox (because all id`s are the same).
Any ideas how to handle this properly?
From the MVC source=>
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;
}
}
The ability of the expression-based helpers to understand indexes isn't in the product yet. It will be in the next preview release (whatever comes after MVC 2 RC). See http://aspnet.codeplex.com/WorkItem/View.aspx?WorkItemId=4970.
这篇关于ASP.NET MVC 2强类型的HtmlHelper,索引的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!