【发布时间】:2011-02-10 21:17:13
【问题描述】:
我有一个枚举模型的视图。
在枚举模型的网格之外,我想要一个接受MeetingActionId 参数的创建链接,它将ActionUpdate 对象绑定到特定的MeetingAction。
如何获取创建链接以接受该属性?目前我得到错误
'System.Collections.Generic.IEnumerable' 不包含 'MeetingActionId' 的定义并且没有扩展方法 'MeetingActionId' 接受类型的第一个参数 'System.Collections.Generic.IEnumerable' 可以找到
我认为这与IEnumerable 有关。我打算通过将网格放在一个部分来解决它,但这对我来说似乎是一个 hacky 解决方案。
谁能提供帮助,希望能告诉我为什么会发生这种情况?
谢谢。
下面的代码 sn-p 使用 MVCContrib Grid 和 T4MVC 用于强类型操作链接。
@model IEnumerable<Actioner.Models.ActionUpdate>
@using MvcContrib.UI.Grid
@{
ViewBag.Title = "ListUpdates";
}
<h2>ListUpdates</h2>
@Html.ActionLink("Add New Update",MVC.ActionUpdates.Create(Model.MeetingActionId))
@Html.Grid(Model).Columns(column => {
column.For(a=> a.UpdateText);
column.For(a=> a.CreatedOn).Format("{0:d}");
column.For(a=>a.CreatedBy);
})
编辑:感谢大家的贡献。经过一番思考,我决定最好将 actionupdates 网格呈现为 MeetingActions 的“详细信息”视图中的部分视图,从而完全避免这个问题。
这个问题可以结束了
【问题讨论】:
-
你想做什么?您有一个正在处理某个模型的集合的视图。您想在此视图中创建一个链接。您想将此链接指向此集合的哪个元素?如果你能回答这个问题,那么你可以在集合中获取模型的这个特定实例,并在你的 T4 模板中使用它。
-
还是一头雾水!该链接应创建一个新的 ActionUpdate。每个 ActionUpdate 都属于一个 MeetingAction,所以一个 ActionUpdate 有一个 MeetingActionId,我想将它传递给 ActionUpdate 控制器中的 create Action。
标签: asp.net-mvc ienumerable razor t4mvc mvccontrib-grid