ASP MVC href vào bộ điều khiển / chế độ xem


93

Tôi có cái này:

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

Cái nào hoạt động tốt. Nhưng nếu tôi đã ở trên trang này hoặc trên bộ điều khiển, ví dụ /Users/Detailsvà tôi nhấp vào liên kết này, nó sẽ chuyển hướng tôi đến /Users/Index.

Làm cách nào để tôi có được đường dẫn chính xác hrefbất kể vị trí hiện tại của tôi trên trang web?


Câu trả lời:


177

Có một số cách để bạn có thể thực hiện điều này. Bạn có thể làm như sau:

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

hoặc cái này:

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

Gần đây tôi làm như sau:

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

Kết quả sẽ có http://localhost/10000(hoặc với bất kỳ cổng nào bạn đang sử dụng) được thêm vào cấu trúc URL như:

http://localhost:10000/Users

Tôi hi vọng cái này giúp được.


18

làm thế nào về

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

7

Hãy thử những cách sau:

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

(Hợp lệ cho ASP.NET 5 và MVC 6)


Nó không hợp lệ cho ASP.NET. Có thể hợp lệ cho các trang ASP cũ.
Zanon

1
Chỉ hợp lệ cho ASP.NET 5 tức là MVC 6
Ifeanyi Chukwu

6

Ở đây '~' đề cập đến thư mục gốc, trong đó Home là bộ điều khiển và Download_Excel_File là actionmethod

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

5

Bạn có thể sửa đổi với những điều sau

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

Dấu chấm phụ có nghĩa là bạn đang ở trong cùng một bộ điều khiển. Nếu bạn muốn thay đổi bộ điều khiển thành bộ điều khiển khác thì bạn có thể viết điều này

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

1
Bạn thân tuyệt vời.
Chandan Kumar

1
Tốt đẹp và dễ dàng! 10x!
Alex123

3

Bạn cũng có thể sử dụng biểu mẫu rất đơn giản này:

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

Trong đó:
Come back to Homelà văn bản sẽ xuất hiện trên trang
Indexlà tên chế độ xem
Homelà tên bộ điều khiển


-1

Nếu sử dụng ASP.NET Core, bạn có thể điều chỉnh câu trả lời được chấp nhận thành:

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

thay thế @Request.Url.Scheme bằng@Context.Request.Scheme

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.