2009-03-03 5 views
5

Citato StackOverflow solo come esempio, ma se si guarda al di sopra del URL per chiedere èPagine Web ASP.NET senza nomi, come StackOverflow?

http://stackoverflow.com/questions/ask 

che significa/ask è una sottodirectory, ma anche fare questo per le pagine delle domande specifiche. Come si codifica questo in .NET?

Non una domanda di codice tanto quanto una tecnica. So che questo è ottimo per il SEO, ma come si crea un sito in modo che ogni "pagina" sia la sua directory? Dinamicamente.

Hai un modello o un reindirizzamento nascosto ???

Come ?? :) URL

risposta

10

E 'definito riscrittura:

Url Rewriting with ASP.NET

MSDN: URL Rewriting in ASP.NET

EDIT: Come @Justice sottolinea, StackOverflow utilizza Routing.

+0

Se si sta andando a downvote, che ne dici di lasciare un commento sul perché? –

+0

Ho votato perché sei l'unico con la risposta giusta –

+0

Ho svalutato anche tu. Che cosa è con quelle risposte stupide su COSA è stato costruito con? La tua risposta risponde direttamente alle domande. – mezoid

1

Stack Overflow usa ASP.net MVC

MVC utilizza l'URL + stringa di query per determinare il contenuto, quindi la sua non come un URL che punta a una pagina specifica, ma più come un percorso gerarchico per le proprietà di alcuni dati a essere visualizzato

EG https://stackoverflow.com/users/[Put ID utente qui]/[Inserisci nome utente qui]

richiede al sito Web di visualizzare un UTENTE con un ID specificato nel percorso (in questo caso il nome utente è probabilmente solo per calci) in contrasto con una pagina specifica creata solo per quell'utente

+0

Il poster non chiedeva in che modo fosse scritto SO. –

5

Stack Overflow è stato costruito utilizzando ASP.NET MVC che utilizza una tecnica chiamata routing, vedere:

What Was Stack Overflow Built With?

e Routing

+0

-1 Hai completamente perso il punto della domanda. Non ha chiesto in che modo SO è stato costruito ... infatti è specificamente indicato che SO è solo usato come esempio. La sua domanda riguarda come riscrivere l'url in modo che appaia come se fosse una directory ... e l'unica risposta corretta finora è di Mitch. – mezoid

+0

OK, quindi la mia risposta non è completa come quella di Mitch e non menziona in modo specifico Routing come da Justice's, ma risponde comunque alla domanda su come (almeno in un modo) "creare un sito in modo che ogni" pagina "sia la sua directory " – mundeep

6

StackOverflow utilizza qualcosa chiamato Routing, che viene fornito con .NET 3.5 SP1 . Il routing è una caratteristica diffusa di numerosi framework MVC, come ASP.NET MVC, Ruby on Rails e numerosi framework Python e PHP.

1

Ho visto ciò realizzato creando semplicemente una cartella per ogni pagina Web e avendo ciascuna cartella contenente un documento Default.aspx (supponendo che Default.aspx sia configurato come documento predefinito in IIS, che è per impostazione predefinita). Quindi è possibile accedere a qualsiasi cartella sul sito senza specificare la pagina (Default.aspx).

Per la parte dinamica, ho lavorato con i sistemi CMS che lo fanno in questo modo e la pagina Default.aspx eredita semplicemente da alcuni template master e il sistema CMS utilizza il rendering enginge di ASP.NET per completare dinamicamente la pagina web.

L'utilizzo delle cartelle può essere un po 'pesante con la struttura del sito, ma è un modo semplice per eliminare i nomi delle pagine dal browser.

Ecco come strutturo il mio sito web ed evito di dover usare i nomi delle pagine ...ad esempio http://www.innovaapps.net/Blog viene semplicemente visualizzata la pagina default.aspx senza dover specificare il nome della pagina.