ASP MVC href ke pengontrol / tampilan

96

Aku punya ini:

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

Yang bekerja dengan baik. Tetapi jika saya sudah berada di halaman ini atau pada pengontrol misalnya /Users/Detailsdan saya mengklik tautan ini, itu mengarahkan saya ke /Users/Index.

Bagaimana saya bisa mendapatkan jalur yang benar hrefterlepas dari posisi saya saat ini di situs?

Zapnologica
sumber
1
Go Thru This ..: codeproject.com/Tips/583469/…
Ravi Mehta

Jawaban:

181

Ada beberapa cara untuk melakukannya. Anda dapat melakukan hal berikut:

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

atau ini:

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

Belakangan ini saya melakukan hal berikut:

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

Hasilnya akan memiliki http://localhost/10000(atau dengan port apa pun yang Anda gunakan) untuk ditambahkan ke struktur URL seperti:

http://localhost:10000/Users

Saya harap ini membantu.

Brendan Vogt
sumber
19

bagaimana tentang

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

Coba yang berikut ini:

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

(Berlaku untuk ASP.NET 5 dan MVC 6)

John Schroeder
sumber
Ini tidak valid untuk ASP.NET. Mungkin valid untuk halaman ASP lama.
Zanon
2
Hanya berlaku untuk ASP.NET 5 yaitu MVC 6
Ifeanyi Chukwu
6

Di sini '~' merujuk ke direktori root, di mana Home adalah controller dan Download_Excel_File adalah metode aksi

 <a href="~/Home/Download_Excel_File" />
faux
sumber
5

Anda dapat memodifikasi dengan yang berikut ini

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

Titik ekstra berarti Anda berada dalam pengontrol yang sama. Jika Anda ingin mengubah pengontrol ke pengontrol yang berbeda maka Anda dapat menulis ini

<li><a href="../newController/Index" class="elements"><span>Clients</span></a></li>
rksajib
sumber
1
Sobat yang sangat baik.
Chandan Kumar
1
Baik dan mudah! 10x!
Alex123
3

Anda juga dapat menggunakan formulir yang sangat disederhanakan ini:

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

Dimana:
Come back to Homeadalah teks yang akan muncul di halaman
Indexadalah nama tampilan
Homeadalah nama pengontrol

Alexandre Neukirchen
sumber
-1

Jika menggunakan ASP.NET Core, Anda dapat menyesuaikan jawaban yang diterima untuk:

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

mengganti @Request.Url.Scheme dengan@Context.Request.Scheme

Neil Schurrer
sumber