Vì vậy, tôi đang làm việc trên một ứng dụng web Intranet bằng cách sử dụng ASP.NET MVC và tôi cần phải tạo liên kết đến một thư mục trên mạng. Vì vậy, ví dụ, giả sử tôi muốn tạo liên kết tới "C: \" và uri này được lưu trữ trong site.DocsPath
. Tôi đã tìm cách dễ nhất để làm điều này chỉ tạo ra một liên kết thường xuyên, như thế này:Liên kết tới Danh bạ trên Mạng
<a href="file:///<%= site.DocsPath %>">Documents</a>
này quyết tâm:
<a href="file:///C:\ruby">Documents</a>
Tuy nhiên, khi bạn nhấp vào liên kết, có gì xảy ra. Về cơ bản nó giống như nhấp vào văn bản thông thường; hoàn toàn không có gì xảy ra. Không có chuyển hướng, không có gì. Tôi đã thử điều này trong cả Firefox và IE, và hành vi tương tự này xảy ra ở cả hai.
Ban đầu tôi nghĩ rằng đó có thể là dấu gạch chéo. Vì vậy, tôi đã dán file:///C:\ruby
vào thanh địa chỉ để xem liệu nó có còn đúng hay không. Nó đã làm việc. Tôi đã thử điều này trong cả Firefox và IE, và nó hoạt động trong cả hai.
Vì vậy, bây giờ, tôi đang nghĩ "hey, có thể html của tôi không phù hợp vì một lý do nào đó". Vì vậy, tôi đã tạo một trang html nhỏ, như vậy:
<html>
<head><title>Test Page</title></head>
<body>
<a href="file:///C:\ruby">Documents</a>
</body>
</html>
Và lo lắng ..... nó hoạt động. Tôi nhấp vào liên kết và nó thực sự theo liên kết. Và điều này làm việc trong cả Firefox và IE.
Vì vậy, bây giờ tôi đang bối rối. HTML là giống hệt nhau trong cả hai trường hợp (thông qua ASP.NET MVC và trong HTML tĩnh). Và chưa nó chỉ hoạt động trong trường hợp HTML tĩnh.
Bây giờ, tôi chỉ kéo ở ống hút. Tôi cố gắng chỉ dán
<a href="file:///C:\ruby">Documents</a>
thẳng vào ViewPage trong ASP.NET MVC. Nope, không hoạt động.
Sau đó, tôi cố gắng dán chỉ là một trang web ngẫu nhiên tĩnh vào ViewPage, như:
<a href="http://www.google.com">Supreme Overlord of the Internet</a>
Và đó làm việc. Vì vậy, bây giờ tôi đã xác nhận rằng ASP.NET thực sự có thể theo các liên kết được tạo bằng tay.
Bây giờ, không còn gì để làm, tôi làm điều gì đó điên rồ. tôi đặt liên kết đến một nơi nào đó không tồn tại, như:
<a href="file:///X:\this\doesnt\exist">I Hate ASP.NET MVC right now</a>
Firefox dính vào súng của nó và không làm theo nó. Tuy nhiên, IE thực sự theo dõi nó và cung cấp cho tôi trang lỗi.Điều tương tự cũng sẽ xảy ra nếu site.DocsPath = "X:\this\doesnt\exist"
và tôi đặt:
<a href="file:///<%= site.DocsPath %>">Documents</a>
Vì vậy, bây giờ, tôi hoàn toàn nhầm lẫn. Tôi không biết những gì hiện tượng này đang diễn ra. Rõ ràng, ASP.NET MVC ghét tôi, điều đó gây rắc rối bởi vì tôi đã thể hiện nó không có gì ngoài tình yêu.
Nếu bất cứ ai có bất kỳ ý tưởng gì đang xảy ra, tôi sẽ đánh giá rất cao sự trợ giúp. Cảm ơn!
UPDATE: Sau nhiều thử nghiệm (và nhiều câu trả lời rất hữu ích và ý kiến từ tất cả mọi người ở đây tại SO), tôi đã đi đến kết luận rằng chỉ cần tạo một liên kết bình thường vào thư mục chỉ sẽ không hoạt động. Cuối cùng tôi đã thử đặt trang html tĩnh mà tôi đã tạo ở trên trên máy chủ web và hóa ra nó không hoạt động. Tôi cũng tạo ra một ứng dụng Ruby on Rails và một ứng dụng PHP nhỏ và đã thử nó thông qua những ứng dụng đó, và nó cũng không hoạt động trên chúng. Vì vậy, khả năng duy nhất khác là nó thực tế là một thứ trình duyệt.
Tôi nghĩ rằng tôi sẽ theo đuổi có thể bằng cách nào đó kết nối với máy chủ SharePoint mà tất cả các tài liệu được quản lý bởi. Cảm ơn tất cả những người đã nhận xét và cung cấp các câu trả lời khác nhau về câu hỏi. Tôi chỉ có thể chọn một câu trả lời, nhưng nhận xét và câu trả lời của mọi người thực sự cung cấp một bức tranh rõ ràng về những gì đang diễn ra. Cảm ơn!
Lol, tôi không thực sự ghét ASP.NET ... Tôi đã hơi thất vọng với điều này vấn đề khi tôi viết bài. Tôi đã thử làm điều này với Rails, và tôi có cùng một lỗi, vì vậy tôi đoán đó là một điều trình duyệt. Tuy nhiên, nó vẫn còn thực sự kỳ lạ mà nó cho phép html tĩnh để truy cập các tập tin địa phương. Dù sao, cảm ơn bạn đã bao gồm một tham chiếu thực tế cho vấn đề. – thebrokencube
Tôi không nghĩ rằng nó cho phép "html tĩnh" ... nó có thể cho phép một tập tin địa phương để truy cập vào một tập tin địa phương. Hãy thử phân phối thông qua máy chủ web của bạn. Có nghĩa là một tệp: // có thể trỏ đến một tệp khác (duyệt web cục bộ từ một cd chẳng hạn) nhưng không phải http: // -> tệp: //. .......... Tôi nhận ra bạn không ghét mvc;) Nếu chỉ có tôi đã lưu tất cả mã thử nghiệm của mình với "tại sao f **** không hoạt động?", "F **************** ck! ", v.v. –
Bạn nói đúng; Tôi đã thử nghiệm nó trên một máy chủ web và nó không hoạt động. Tôi đoán tôi sẽ phải sủa một cây khác để có được chức năng này để làm việc. Cảm ơn đã giúp đỡ! – thebrokencube