c# - 将 DisplayFor 与嵌套属性的单个索引一起使用 - Lambda 参数不在范围内

标签 c# asp.net-mvc asp.net-mvc-2

我有一个 Approval 类,它有一个 ApprovalDocument 对象列表。
Approvals 类有一个 ActiveApprovalDocument 属性。

我的模型有一个Approval列表。

我也想显示事件批准文件的属性:

<%= Html.DisplayFor(m => m.Approvals[i].ApprovalDocuments[m.Approvals[i].ActiveApprovalDocumentsId.Value].CertificationIssuedDate)%>

我意识到我可以直接显示 Model.Approvals[i]..我怎么还能使用 DisplayFor(所以我得到自动格式化等)?


我得到的错误是:

System.InvalidOperationException: The expression compiler was unable to evaluate the indexer expression 'm.Approvals.get_Item(value(ASP.areas_approvals_views_approvals_index_aspx+<>c__DisplayClass0).i).ActiveApprovalDocumentsId.Value' because it references the model parameter 'm' which is unavailable. ---> System.InvalidOperationException: Lambda Parameter not in scope

最佳答案

<% var j = Model.Approvals[i].ActiveApprovalDocumentsId.Value; %>
<%= Html.DisplayFor(m => m.Approvals[i].ApprovalDocuments[j].CertificationIssuedDate) %>

或者只使用 View 模型。

关于c# - 将 DisplayFor 与嵌套属性的单个索引一起使用 - Lambda 参数不在范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13759730/

相关文章:

c# - ASP.NET MVC 2 C# : Short hand IF within loop?

c# - 查找第一个大写字符的索引

c# - byte[] 数组大小等于 C# 中数组的实际大小?

javascript - 使用 JS/jQuery 在前端对 HTML div 进行排序

asp.net-mvc - 从返回 ActionResult 的 Action 执行 JavaScript

asp.net-mvc - 在控制台应用程序中创建 ASP.NET MVC 样式 View ?

c# - 使用 LINQ 根据字段过滤 JSON 对象

c# - 从多个线程访问NetMQ套接字

asp.net-mvc - ASP.NET MVC 中的 Server.Execute()

c# - ASP.NET MVC Url.Action 和路由名称值