我有一个简单的局部视图。其主要部分如下所示。在由不同控制器管理的页面上呈现此部分视图时,如何正确解析ActionLinks。换句话说 - 这个局部视图显示了给定项目的项目区域。如果此PV显示在由项目控制器管理的页面上,该怎么办?此处的默认路由行为将尝试让代码执行/ Project / Edit或Project / Detail。那不是我真正需要的东西。相反,我需要它去/ ProjectArea / Edit例如。在这种情况下如何实现?
<% foreach (var item in Model) { %>
<tr>
<td>
<%= Html.ActionLink("Edit", "Edit", new { id=item.ProjectAreaId }) %> |
<%= Html.ActionLink("Details", "Details", new {id=item.ProjectAreaId })%>
</td>
<td>
<%= Html.Encode(item.Name) %>
</td>
</tr>
<% } %>
答案 0 :(得分:3)
您需要使用带有控制器字符串的ActionLink重载。我认为它的签名看起来像:
HtmlHelper.ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)
'item'对象上是否有可用于识别controllerName的属性?也许在控制器中设置一些其他的viewdata值,你可以把它作为controllerName ...?
HTHS, 查尔斯