ASP MVC href a un controlador / vista


Tengo esto:

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

Que funciona bien. Pero si ya estoy en esta página o en el controlador, por ejemplo, /Users/Details y hago clic en este enlace, me redirige a /Users/Index.

¿Cómo puedo obtener la ruta correcta en el href, independientemente de mi posición actual en el sitio?

Author: Brendan Vogt, 2013-07-16

6 answers

Hay un par de maneras que usted puede lograr esto. Puedes hacer lo siguiente:

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

O esto:

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

Últimamente hago lo siguiente:

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

El resultado tendría http://localhost/10000 (o con cualquier puerto que esté utilizando) que se agregará a la estructura de URL como:

http://localhost:10000/Users

Espero que esto ayude.

 139
Author: Brendan Vogt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-16 05:35:51

¿Qué tal

<li>
<a href="@Url.Action("Index", "Users")" class="elements"><span>Clients</span></a>
</li>
 13
Author: FosterZ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-16 08:06:09

Puede modificar con lo siguiente

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

El punto extra significa que estás en el mismo controlador. Si desea cambiar el controlador a un controlador diferente, puede escribir esto

<li><a href="../newController/Index" class="elements"><span>Clients</span></a></li>
 4
Author: rksajib,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-05 05:04:40

Intente lo siguiente:

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

(Válido para ASP.NET 5 y MVC 6)

 4
Author: John Schroeder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-21 14:38:01

Aquí ' ~ ' se refiere al directorio raíz, donde Home es controller y Download_Excel_File es actionmethod

 <a href="~/Home/Download_Excel_File" />
 3
Author: faux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-17 07:19:59

También puede usar esta forma muy simplificada:

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

Donde :
Come back to Home es el texto que aparecerá en la página
Index es el nombre de la vista
Homees el nombre del controlador

 1
Author: Alexandre Neukirchen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-09 02:14:47