Così sto lavorando su una Intranet applicazione web utilizzando ASP.NET MVC , e ho bisogno di creare un collegamento a una cartella in rete. Quindi, ad esempio, diciamo che volevo creare un collegamento a "C: \", e questo uri è memorizzato in site.DocsPath
. Ho pensato che il modo più semplice per farlo è stato proprio creare un collegamento regolare, in questo modo:collegamento a una directory sulla rete
<a href="file:///<%= site.DocsPath %>">Documents</a>
Questo risolve a:
<a href="file:///C:\ruby">Documents</a>
Tuttavia, quando si fa clic sul link, non succede nulla. È fondamentalmente come fare clic sul testo normale; assolutamente non succede nulla. Nessun reindirizzamento, niente. Ho provato questo in Firefox e IE, e questo stesso comportamento si verifica in entrambi.
Inizialmente ho pensato che potessero essere le barre. Così ho incollato file:///C:\ruby
nella barra degli indirizzi, per vedere se era giusto. Ha funzionato. Ho provato questo sia in Firefox e IE, e funziona in entrambi.
Così ora, sto pensando "hey, forse il mio html non è corretto per qualche motivo". Così ho creato una piccola pagina html, come tale:
<html>
<head><title>Test Page</title></head>
<body>
<a href="file:///C:\ruby">Documents</a>
</body>
</html>
Ed ecco ... ha funzionato. Clicco sul link e segue effettivamente il link. E questo funziona sia in Firefox che in IE.
Quindi ora sono confuso. L'HTML è esattamente lo stesso in entrambi i casi (tramite ASP.NET MVC e in HTML statico). Eppure funziona solo nel caso HTML statico.
Ora, io sono solo tirando a cannucce. Io cerco solo incollando
<a href="file:///C:\ruby">Documents</a>
direttamente nel ViewPage in ASP.NET MVC. Nope, non funziona.
poi cerco incollando solo un sito web casuale staticamente nel ViewPage, come:
<a href="http://www.google.com">Supreme Overlord of the Internet</a>
E che funziona. Quindi, ora ho confermato che ASP.NET può effettivamente seguire i link generati a mano.
Ora, senza più nulla da fare, faccio qualcosa di pazzo. Ho impostato il link da qualche parte che non esiste, come:
<a href="file:///X:\this\doesnt\exist">I Hate ASP.NET MVC right now</a>
Firefox si attacca alle sue armi e non segue esso. Tuttavia, IE lo segue effettivamente e mi dà una pagina di errore.La stessa cosa accade se site.DocsPath = "X:\this\doesnt\exist"
e ho messo:
<a href="file:///<%= site.DocsPath %>">Documents</a>
Così ora, io sono totalmente confuso. Non so cosa diavolo sta succedendo. Chiaramente, ASP.NET MVC mi odia, il che è preoccupante perché non ho mostrato altro che amore.
Se qualcuno ha qualche idea su cosa sta succedendo, gradirei molto l'aiuto. Grazie!
UPDATE: Dopo molte prove (e molte risposte e commenti da parte di tutti qui a SO molto utile), sono giunto alla conclusione che solo la creazione di un normale link alla cartella appena non funzionerà. Alla fine ho provato a mettere quella pagina html statica che ho creato sopra su un server web, e si scopre che non funziona. Ho anche creato un'applicazione Ruby on Rails e una piccola applicazione PHP e l'ho provata, e non funziona nemmeno su di essi. Quindi l'unica altra possibilità è che è in effetti una cosa del browser.
Penso che andrò avanti magari in qualche modo connettendo al server SharePoint che tutti i documenti sono gestiti da. Grazie a tutti coloro che hanno commentato e fornito varie risposte sulla domanda. Posso scegliere solo una risposta, ma i commenti e le risposte di tutti hanno fornito un'immagine chiara di ciò che stava accadendo. Grazie!
Lol, in realtà non odio ASP.NET ... ero solo un po 'frustrato da questo problema quando ho scritto il post. Ho provato a farlo con Rails e ho avuto lo stesso errore, quindi immagino sia una cosa da browser. Tuttavia, è ancora molto strano che consente all'HTML statico di accedere ai file locali. Comunque, grazie per aver incluso un riferimento effettivo al problema. – thebrokencube
Non penso che consenta "static html" ... probabilmente consente a un file locale di accedere a un file locale. Prova a farlo attraverso il tuo server web. Ha senso che un file: // possa puntare a un altro file (navigazione web locale da un cd per esempio) ma non http: // -> file: //. .......... Mi rendo conto che non odiate il mvc;) Se solo avessi salvato tutto il mio codice di prova con "perché f **** non funziona?", "F **************** ck! ", ecc. –
Hai ragione; L'ho provato su un server web e non ha funzionato neanche. Credo che dovrò abbaiare su un altro albero per far funzionare questa funzionalità. Grazie per l'aiuto! – thebrokencube