MVC Html.ActionLink忽略Controller参数

时间:2010-02-11 01:16:34

标签: model-view-controller actionlink

我有一个包含以下代码的视图:

<h2><%= Model.Company.CompanyName %></h2>
<h3>Projects</h3>
<ul>
<%
    foreach (Project p in Model.Company.Projects)
    {
        %>
        <li><%= Html.ActionLink(p.ProjectName,"Details", "Projects", new {id=p.ProjectID,companyId=p.CompanyID}) %></li>
        <%   
    } 
%>
</ul>
<%= Html.ActionLink("Add Project", "Create", "Projects", new {id = Model.CompanyID}) %>
<br />
<h3>Users</h3>

我有一个ProjectsController但是当我运行应用程序并单击Add Project Link时,它希望转到/ Company / Create而不是/ Projects / Create。我错过了什么吗?

1 个答案:

答案 0 :(得分:12)

您匹配期望第三个参数中的路由值的signature和第四个参数中的html属性。添加另一个参数(null就可以),您将获得具有链接文本,操作,控制器,路由值和html属性的signature

<%= Html.ActionLink("Add Project",
                    "Create",
                    "Projects",
                    new {id = Model.CompanyID},
                    null ) %>