2009-08-14 48 views
9

Tôi buiding một UrlHelper cho một tuyến đường như trong best practicesUrl.RouteUrl trả về null

vấn đề là giá trị trả về luôn là null khi gỡ lỗi trong phát hiện ra rằng

Url.RouteUrl (" x ") return rỗng

Url.RouteCollection [" x "] trở lại Route

tôi đang cố gắng để làm:

public static string Category(this UrlHelper helper, int Id, string category) 
{ 
    return helper.RouteUrl("X", new {id = Id, category= category}); 
} 

Tôi không thể nhìn thấy nơi tôi đang làm một cái gì đó sai

+0

Trong Global.asax của bạn, bạn có thực sự đăng ký một con đường mang tên "X"? – womp

+0

có tuyến đường được đăng ký là tuyến đường.MapRoute ("X", "/ danh mục/{id}/{danh mục}", mới {controller = "danh mục", hành động = "Danh sách"}) – freddoo

Trả lời

15

Dường như điều này đang được gây ra bởi vì bạn không chỉ định một giá trị mặc định cho {id} và {} loại khi đăng ký các tuyến đường của bạn.

Url.RouteUrl("x") sẽ trả về giá trị rỗng vì không có giá trị cho id và danh mục được cung cấp và định nghĩa tuyến đường của bạn không có giá trị mặc định.

Tôi nghĩ rằng bạn sẽ tìm thấy nếu bạn cập nhật mục nhập tuyến đường của bạn để chỉ định giá trị mặc định cho id và danh mục, điều này sẽ giải quyết được sự cố của bạn. Ngoài ra, nếu bạn chắc chắn luôn luôn cung cấp một giá trị cho id và danh mục, bạn có thể làm mà không có nó.

Theo như phương thức trợ giúp Url thực tế của bạn Danh mục(), nên hoạt động bình thường nếu bạn đang cung cấp giá trị không rỗng hoặc trống cho id và danh mục. Tôi theo nghĩa đen đã sao chép mã và nó hoạt động cho tôi.

+2

Tôi đã đặt tất cả mặc định và tôi vẫn gặp sự cố này. – Shimmy

0

Đối với một số lý do tôi vẫn chạy việc phát hành ứng cử viên MVC Tôi đã cài đặt MVC 1.0 và bây giờ nó hoạt động tốt