2010-02-11 45 views
6

Tôi có aa xem có đoạn mã sau:MVC Html.ActionLink bỏ qua các tham số điều khiển

<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> 

Tôi có một ProjectsController nhưng khi tôi chạy các ứng dụng và nhấn vào Thêm Project Link nó dự kiến ​​sẽ đi đến/Company/Create thay vì/Projects/Create. Tui bỏ lỡ điều gì vậy?

Trả lời

12

Bạn đang khớp với số signature dự kiến ​​giá trị tuyến đường trong thông số thứ ba và thuộc tính html trong thứ tư. Thêm một tham số khác (null là ok) và bạn sẽ nhận được signature có văn bản liên kết, hành động, bộ điều khiển, giá trị tuyến đường và thuộc tính html.

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

Cảm ơn tôi đã chỉ ra điều đó! –

+0

@Susan - kể từ khi bạn mới ở đây, tôi nghĩ tôi muốn đề cập rằng cách SO hoạt động là bạn bỏ phiếu lên (bằng cách sử dụng các nút mũi tên bên cạnh câu hỏi) câu trả lời hữu ích. Sau đó, chọn câu trả lời hay nhất cho câu hỏi của bạn và chấp nhận câu trả lời bằng dấu kiểm để biểu thị rằng nó đã giải quyết được vấn đề của bạn. Bằng cách này, những người khác với cùng một vấn đề biết giải pháp tốt nhất là gì. – tvanfosson

Các vấn đề liên quan