컨트롤러 /보기에 대한 ASP MVC href


93

나는 이것을 가지고있다:

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

잘 작동합니다. 하지만 이미이 페이지 나 컨트롤러 /Users/Details에있는 경우이 링크를 클릭하면로 리디렉션됩니다 /Users/Index.

href사이트의 현재 위치에 관계없이 올바른 경로를 어떻게 얻을 수 있습니까?


답변:


177

이를 수행 할 수있는 몇 가지 방법이 있습니다. 다음을 수행 할 수 있습니다.

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

아니면 이거:

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

최근에는 다음을 수행합니다.

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

결과는 http://localhost/10000다음과 같이 URL 구조에 추가됩니다 (또는 사용중인 포트에 관계없이).

http://localhost:10000/Users

이게 도움이 되길 바란다.


18

어때

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

7

다음을 시도하십시오.

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

(ASP.NET 5 및 MVC 6에 유효)


ASP.NET에는 유효하지 않습니다. 이전 ASP 페이지에 유효 할 수 있습니다.
Zanon

1
ASP.NET 5, 즉 MVC 6에만 유효
Ifeanyi Chukwu

6

여기서 '~'는 루트 디렉토리를 의미하며, Home은 컨트롤러이고 Download_Excel_File은 actionmethod입니다.

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

5

다음으로 수정할 수 있습니다.

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

추가 점은 동일한 컨트롤러에 있음을 의미합니다. 컨트롤러를 다른 컨트롤러로 변경하려면 다음과 같이 작성할 수 있습니다.

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

1
훌륭한 버디. 건배.
Chandan Kumar

1
멋지고 쉽습니다! 10 배!
Alex123

3

이 매우 간단한 형식을 사용할 수도 있습니다.

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

여기서 :
Come back to Home페이지에 나타날 텍스트
Index는보기 이름
Home은 컨트롤러 이름입니다.


-1

ASP.NET Core를 사용하는 경우 허용되는 답변을 다음으로 조정할 수 있습니다.

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

교체 @Request.Url.Scheme@Context.Request.Scheme

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.