2010-08-12 48 views
10

Trong ASP.NET MVC tôi thấy tôi có những người trợ giúp HTML tiện dụng mà tôi có thể sử dụng để xây dựng các trường biểu mẫu và bất kỳ số lượng các thứ nhỏ khác. Nhưng sau đó có 'ActionLinks'.ASP.NET MVC: ActionLink vs bare url

Tại sao lại sử dụng ActionLink thay vì chỉ viết url darn của mình trong thẻ HTML HTML?

Nói cách khác, tại sao tôi sẽ sử dụng

<%: Html.ActionLink("Back to List", "QuantityTypes") %> 

thay vì chỉ sử dụng ol đồng bằng' HTML và viết:

<a href="/internal/quantitytypes">Back to List</a> 

Chắc chắn, tôi phải có được cái gì thêm với ActionLink. Tôi chỉ thiếu nó, phải không?

Trả lời

9

Các liên kết hành động sẽ xây dựng cho bạn chính xác URL dựa trên khiển, hành động, khu vực, params, vv ... Nó sẽ tạo URL dựa trên các quy tắc ánh xạ URL được định nghĩa trong bạn Hệ thống định tuyến MVC. Nó sẽ ánh xạ các tham số đến đúng url cũng tùy thuộc vào việc nó có cần được bao gồm trong URL trực tiếp hoặc thông qua tham số truy vấn hay không.

Có, bạn có thể tự mình làm điều đó và chỉ cần nhập tất cả nhưng xây dựng URL cho bạn và đảm bảo URL được tạo là chính xác. Đó là chức năng trợ giúp ... giúp bạn tạo liên kết hợp lệ :)

Bạn nên đọc Scott Guthrie's post và chú ý thêm đến phần "Constructing Outgoing URLs from the Routing System". Nó cung cấp cho lý do tại sao và giải thích những người trợ giúp khác tận dụng hệ thống định tuyến.

+0

+1 cho bài viết ScottGu - đọc tốt. –

+0

Để định tuyến mặc định của/{controller}/{action} Nó mua gì cho bạn? – LarryBud

0

Bạn nhận được quyền kiểm soát tập trung vào URL của mình. Vì vậy, thời gian tiếp theo bạn cần phải thay đổi một cho mục đích SEO, bạn không phải đi tìm kiếm mọi nơi trong ứng dụng, chỉ cần chuyển đổi nó trong Global.asax.

+2

Thú vị. Bạn có một ví dụ về điều này sẽ như thế nào? –

0

Nếu bạn muốn thay đổi tên bộ điều khiển từ Internal sang External. Chuyện gì đang xảy ra vậy? Bạn sẽ cần phải thay đổi liên kết href bằng tay. ActionLink sẽ thực hiện định tuyến tự động. Bạn không cần phải gây rối với các url.

0

Một lý do khác để sử dụng ActionLink trên url trống là bạn có thể cần hiển thị liên kết tải xuống tài nguyên được bảo mật chỉ có thể truy cập bằng ứng dụng thông qua mạo danh danh tính.

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