2013-02-21 9 views
6

Ho schierato un'applicazione MVC3 nel web. Come posso aggiungere il nome della directory virtuale nel metodo Url.Action()?Url.Action per l'applicazione MVC3 ospitato in una sottodirectory

per esempio: la mia applicazione è in mydomain.com \ app

ora quando faccio

rendimenti Url.Action action = "/ home/Create", ma quello che voglio è l'azione = "/ app/Home/Crea".

cosa dovrebbe essere fatto?

risposta

7

Non dovrebbe essere necessario per farlo. Se l'applicazione è correttamente implementato in IIS all'interno di una directory virtuale (ad esempio App) allora l'aiutante Url.Action("Create", "Home") genererà /app/home/Create che è l'URL corretto.

+1

I secondi questo, ho ospitare più applicazioni in directory virtuale e mai avuto questo problema. – Beyers

+0

grazie ... ha funzionato –

1

Mappa un percorso (NOTA: questo percorso deve comparire davanti al percorso di default)

 context.MapRoute(
      name: "app", 
      url: "app/{controller}/{action}/{id}", 
      defaults: new { controller = "Test", action = "Index", id = UrlParameter.Optional } 
     ); 

Quindi utilizzare Url.Action come questo (dovrebbe dare/app):

@Url.Action("Index", "Test") 

Puoi trovare rotte nel tuo file Global.asax.cs.

0

Esso appare ciò che si sta cercando di fare è creare uno spazio. MVC supporta l'utilizzo di Area per organizzare ulteriormente i controllori e le azioni nella tua applicazione.

Si prega di consultare questo arcticle MSDN per ulteriori informazioni: http://msdn.microsoft.com/en-us/library/ee671793(v=vs.100).aspx

0

Infine Sto usando Url.Content ("~/Home/Crea"), che restituisce l'intero URL sia ospitato su directory principale o secondario.

Problemi correlati