条件路由?

时间:2009-06-08 22:09:25

标签: asp.net-mvc

我有一个简单的局部视图。其主要部分如下所示。在由不同控制器管理的页面上呈现此部分视图时,如何正确解析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>

<% } %>

1 个答案:

答案 0 :(得分:3)

您需要使用带有控制器字符串的ActionLink重载。我认为它的签名看起来像:

HtmlHelper.ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)

'item'对象上是否有可用于识别controllerName的属性?也许在控制器中设置一些其他的viewdata值,你可以把它作为controllerName ...?

HTHS, 查尔斯