2013-07-16 17 views
61

ho questo:ASP MVC href ad un controller/vista

<li><a href="/Users/Index)" class="elements"><span>Clients</span></a></li> 

che funziona bene. Ma se sono già in questa pagina o sul controller, ad es. /Users/Details e clicco su questo link mi reindirizza a /Users/Index.

Come posso ottenere il percorso corretto nello href indipendentemente dalla posizione corrente sul sito?

+1

passare attraverso questo ..: http://www.codeproject.com/Tips/583469/MVC-Different-Redirection-Techniques-Razor –

risposta

120

ci sono un paio di modi in cui è possibile ottenere questo risultato. È possibile effettuare le seguenti operazioni:

<li> 
    @Html.ActionLink("Clients", "Index", "User", new { @class = "elements" }, null) 
</li> 

o questo:

<li> 
    <a href="@Url.Action("Index", "Users")" class="elements"> 
      <span>Clients</span> 
    </a> 
</li> 

Ultimamente faccio la seguente:

<a href="@Url.Action("Index", null, new { area = string.Empty, controller = "User" }, Request.Url.Scheme)"> 
    <span>Clients</span> 
</a> 

il risultato sarebbe http://localhost/10000 (o con qualsiasi porta che si sta utilizzando) essere aggiunto alla struttura dell'URL come:

http://localhost:10000/Users 

Spero che questo aiuti.

12

come su

<li> 
<a href="@Url.Action("Index", "Users")" class="elements"><span>Clients</span></a> 
</li> 
4

provare quanto segue:

<a asp-controller="Users" asp-action="Index"></a> 

(Valido per ASP.NET MVC 5 e 6)

+0

Non è valido per ASP.NET. Forse valido per vecchie pagine ASP. – Zanon

+1

Valido solo per ASP.NET 5 i.e MVC 6 –

4

È possibile modificare con il seguente

<li><a href="./Index" class="elements"><span>Clients</span></a></li> 

Il punto extra che significa sono nello stesso controller. Se si desidera cambiare il controller per un controller diverso allora si può scrivere questo

<li><a href="../newController/Index" class="elements"><span>Clients</span></a></li> 
+1

Buddy.Cheers eccellenti. –

3

Qui '~' si riferisce alla directory principale, in cui Home è controllore e Download_Excel_File è actionmethod

<a href="~/Home/Download_Excel_File" /> 
0

È inoltre possibile utilizzare questa forma molto semplificata:

@Html.ActionLink("Come back to Home", "Index", "Home") 

Dove:
Come back to Home è il testo che apparirà o n pagina
Index è il nome della vista
Home è il nome del controller