2012-05-06 38 views
38

Tôi không thể hiểu (các) lợi ích mà tôi có thể nhận được từ phương thức Url.Content() trong ASP.NET MVC. Ví dụ: bạn thấy src='@Url.Content("~/Contents/Scripts/jQuery.js")'. Tại sao tôi nên sử dụng nó? Lý do gì có thể tồn tại để sử dụng? Lợi ích, lợi thế, v.v. qua việc sử dụng các tài liệu đơn giản cũ đơn giản như src='/scripts/jquery.js?Tại sao tôi nên sử dụng @ Url.Content ("~/blah-blah-blah")?

Cập nhật: Dựa trên câu trả lời, tôi muốn biết liệu có lý do nào khác để sử dụng nó, ngoài việc xử lý các thư mục ảo không? Bởi vì tôi đã không nhìn thấy bằng cách sử dụng các ứng dụng ảo mà nhiều (mà tất nhiên không có nghĩa là nó đã không được sử dụng nhiều).

+1

Bạn chưa bao giờ có nhiều ứng dụng tồn tại trong một trang web duy nhất –

+0

Vâng, đó là lý do duy nhất họ sử dụng' @ Url.Content'? Nếu vậy, chúng ta có thể đơn giản ngừng sử dụng nó trên một ứng dụng cho mỗi giải pháp trang web không? –

+1

Xin lỗi vì trả lời muộn - luôn tốt nhất để đưa nó vào. Bạn không bao giờ biết cấu trúc trang web có thể thay đổi như thế nào trong tương lai. Về mặt kỹ thuật, nếu bạn _never_ sẽ thay đổi vị trí của nó và một ứng dụng của nó trên mỗi trang web không có thư mục ảo bên dưới nó, thì chắc chắn bạn chỉ có thể sử dụng src = '/ scripts/whatever.js' –

Trả lời

26

Ánh xạ đường dẫn ảo là mục đích duy nhất. Nếu bạn không bao giờ cần phải ánh xạ chúng và chắc chắn ứng dụng của bạn hoặc thư mục của nó sẽ không nằm trong các ứng dụng khác thì nó sẽ không phục vụ bạn bất kỳ mục đích nào.

Từ các tài liệu lưu ý nếu bạn không sử dụng ~ bạn không nhận được sự thay đổi trong kết quả anyways: "Bình luận Nếu đường dẫn nội dung cụ thể không bắt đầu bằng dấu ngã (~) nhân vật, phương thức này trả contentPath không thay đổi. "

+0

Cảm ơn @AdamTupliper. Sau đó, tôi chỉ cần thả phương thức này từ hộp công cụ của tôi;). –

+7

Cũng lưu ý rằng trong MVC4 một số điều này được xử lý tự động, ví dụ một thẻ script bạn chỉ có thể chỉ định src = "~/scripts/whatever.js" và dao cạo sẽ tự động ánh xạ nó cho bạn ngay bây giờ mà không cần sử dụng url.content –

16

Có ích nếu ứng dụng của bạn không phải là đường dẫn gốc của máy chủ. Url.Content ("~ /") trả về thư mục gốc của ứng dụng của bạn.

+0

Tôi chưa từng gặp vấn đề đó. Nhưng +1. –

+0

Từ những gì tôi đang trải nghiệm. sử dụng '~' không hiển thị nội dung hình ảnh khi bạn di chuột qua liên kết trong studio trực quan. Nói không thể xác định [đường dẫn]. –

32

Thông thường, ứng dụng web của bạn được xuất bản dưới dạng: www.yoursite.com/. Ký tự ~ khớp với gốc của trang /.

Tuy nhiên, nếu bạn xuất bản trang web của mình bằng thư mục ảo www.yoursite.com/mywebapp/, ký tự ~ sẽ khớp với "/ mywebapp /". Url mã hóa cứng có ký tự "/" sẽ gây ra tham chiếu trang sai.

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