2012-11-21 47 views
5

Có cách nào để thay đổi thông số url hiện tại từ bộ điều khiển sao cho khi trang được tải, các thông số bổ sung/khác nhau được hiển thị trong thanh địa chỉ không?Thay đổi URL từ bộ điều khiển?

Đây là những gì tôi muốn nói, nói rằng tôi có một hành động 'Sản phẩm':

public ActionResult Product(int productId) 
{ 
    .. 
} 

tôi ánh xạ các tuyến đường để product/4545/purple-sunglasses được ánh xạ tới các chức năng trên, tên sản phẩm là thực sự bỏ qua, nhưng tôi muốn, rằng nếu tên sản phẩm không được xác định, bộ điều khiển nên thêm này, vì vậy sản phẩm được trong một cách dễ dàng trong công cụ tìm kiếm, vv

Trả lời

7

có một cái nhìn ở đây: http://www.dominicpettifer.co.uk/Blog/34/asp-net-mvc-and-clean-seo-friendly-urls

có một mô tả rất dài làm thế nào để làm điều đó . Và phần cuối cùng cho bạn biết về 301-chuyển hướng, mà bạn nên sử dụng để hướng dẫn các trình thu thập công cụ tìm kiếm mà trang có thể được tìm thấy theo URL bạn muốn.

Đừng quên xem mã hóa url, sẽ giúp bạn tiết kiệm một số công việc và cung cấp url chất lượng cao hơn.

Dưới đây là một số đoạn cần thiết từ các bài viết trên blog:

Thiết lập định tuyến của bạn:

routes.MapRoute( 
    "ViewProduct", 
    "products/{id}/{productName}", 
    new { controller = "Product", action = "Detail", id = "", productName = "" } 
); 

Thêm tên phần để điều khiển của bạn và kiểm tra xem nó là đúng tên:

public ActionResult Detail(int id, string productName) 
{ 
    Product product = IProductRepository.Fetch(id); 

    string realTitle = product.Title; // Add encoding here 

    if (realTitle != urlTitle) 
    { 
     Response.Status = "301 Moved Permanently"; 
     Response.StatusCode = 301; 
     Response.AddHeader("Location", "/Products/" + product.Id + "/" + realTitle); // Or use the UrlHelper here 
     Response.End(); 
    } 

    return View(product); 
} 

cập nhật
Url dường như bị hỏng. Bài viết này mô tả hầu hết các chức năng tương tự: http://www.deliveron.com/blog/post/SEO-Friendly-Routes-with-ASPnet-MVC.aspx

Nhờ Stu1986C cho nhận xét/liên kết mới!

+2

Cảm ơn. BTW, nó luôn luôn là một thói quen tốt để sao chép một phần quan trọng của nội dung liên kết đến bài viết của bạn, vì vậy nếu ngày mai liên kết đó đã chết, người dùng vẫn có thể hưởng lợi câu trả lời của bạn. Ngoài ra nó sẽ dễ tiếp cận hơn và câu trả lời sẽ hiển thị rõ hơn với mọi người. – Shimmy

+2

Liên kết đã chết. Đây là hình thức mới: http: //www.deliveron.com/blog/post/SEO-Friendly-Routes-with-ASPnet-MVC.aspx – Stu1986C

+0

Đã thêm liên kết mới vào câu trả lời. Cảm ơn! –

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