2009-07-17 32 views
5

Khi bạn đến câu hỏi này, bạn sẽ thấy tiêu đề của câu hỏi nằm trong thanh địa chỉ và liên kết bạn đã nhấp vào để đến đây. Tôi không chắc chắn các thuật ngữ chính xác như vậy tìm thấy nó khó khăn để tìm kiếm nhưng làm thế nào tôi có thể làm điều gì đó tương tự? Đó là, Làm thế nào tôi có thể thêm dữ liệu vào thanh địa chỉ mà là hoàn toàn cho hiển thị/công cụ tìm kiếm.Thêm Thông tin Dự phòng vào Tuyến đường MVC

Cảm ơn

Trả lời

6

Lấy ví dụ về một câu hỏi Stack Overflow như thế này URL là:

so.com/questions/1142480/adding-redundant-information-to-a-mvc-route

Tuy nhiên, phần chức năng của URL là:

so.com/questions/1142480

Cách thức này đạt được bằng cách xác định lộ trình như sau:

routes.MapRoute(
    "questions", 
    "questions/{id}/{title}", 
    new { controller = "Questions", action = "Details", title = "" }); 

Bạn sau đó tạo ra một liên kết đến nó như thế này:

<%= Html.RouteLink("Adding Redundant Information to a MVC Route", 
     new 
     { 
      controller = "Questions", 
      id = 1142480, 
      title = "adding-redundant-information-to-a-mvc-route" 
     } 
    ) 
%> 

tôi sẽ tưởng tượng tựa đề URL được tạo ra từ tiêu đề thực tế bởi vỏ thấp, thay thế không gian với dấu gạch ngang và một vài thứ khác (thoát/tách các ký tự xấu).

Miễn là tuyến đường SEO của bạn xuất hiện trước bất kỳ tuyến đường phù hợp nào khác, tuyến đường SEO sẽ được sử dụng.

Đối hoàn chỉnh rõ ràng bộ điều khiển sẽ thực sự là như thế này:

public class QuestionsController : Controller 
{ 
    public ActionResult Details(int id) 
    { 
     // stuff for display - notice title is not used 
    } 
} 
+0

Chúc mừng, Điều đó đã làm điều đó :) – Damien

+0

Vui vì tôi có thể giúp –

2

Một điều bạn nên nhận ra là văn bản ở phần cuối của URL này thực sự là một hình nộm. Ví dụ, URL này:

sẽ mở ra câu hỏi này sạch sẽ. Tương tự như vậy, một tiêu đề khác hơn là câu hỏi của bạn:

sẽ CŨNG mở câu hỏi này mà không có lỗi.

Bạn có thể dễ dàng sử dụng một số thuật toán phân tích cú pháp tiêu đề để tạo URL "Thân thiện với SEO" cho bạn hoàn thành với tiêu đề và thêm vào cuối số câu hỏi. Tuyến đường MVC của bạn sẽ bỏ qua phần cuối cùng.

+0

cổ vũ cho thông tin :) – Damien

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