asp.net - net - ASP MVC href a un controlador/vista
web forms c# ejemplos (6)
Tengo esto:
<li><a href="/Users/Index)" class="elements"><span>Clients</span></a></li>
Lo cual 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?
Aquí ''~'' se refiere al directorio raíz, donde Home es el controlador y Download_Excel_File es actionmethod
<a href="~/Home/Download_Excel_File" />
Hay un par de formas en que puedes 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é usando) para agregar a la estructura de URL como:
http://localhost:10000/Users
Espero que esto ayude.
Pruebe lo siguiente:
<a asp-controller="Users" asp-action="Index"></a>
(Válido para ASP.NET 5 y MVC 6)
Puede modificar con la 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>
También puedes usar esta forma muy simplificada:
@Html.ActionLink("Come back to Home", "Index", "Home")
Dónde :
Come back to Home
es el texto que aparecerá en la página
Index
es el nombre de la vista
Home
es el nombre del controlador
qué tal si
<li>
<a href="@Url.Action("Index", "Users")" class="elements"><span>Clients</span></a>
</li>