コントローラー/ビューへのASP MVC href


91

私はこれを持っています:

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

うまくいきます。しかし、すでにこのページやコントローラーにいる場合など/Users/Details、このリンクをクリックすると、にリダイレクトされ/Users/Indexます。

hrefサイト上の現在の位置に関係なく、どのようにして正しいパスを取得できますか?


回答:


175

これを行うには、いくつかの方法があります。次のことができます。

<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>


6

ここで、「〜」はルートディレクトリを指します。ホームはコントローラーで、Download_Excel_Fileはアクションメソッドです。

 <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.