2016-04-30 11 views
4

私は次のようにマークアップを使用しています。アンカーのhrefからMVCアクションメソッドを呼び出す方法は?

@Html.ActionLink(@User.Identity.Name, "LogOut", "Account") 

これで、ブートストラップのグリフを使用したいので、アンカーの内側にスパンを追加する必要があります。私のgooglearchが行ったところでは、上のヘルパーを使って指定する方法はありません。だから、私はそれを明示的なHTMLに次のように再設計しました。

<a href="~/Account/LogOut"> 
    <span class="glyphicon glyphicon-log-out"></span> 
    <span>@Global.LogOut @User.Identity.Name</span> 
</a> 

それは、を動作しますが、最初の例がそうであるようリンクが常に同じアドレスをターゲットにされていません。最初に言語のためにen/またはse/などがあるからです。 MVCに基づいてルーティングすると、言語プレフィックスはそのまま残りますが、URLを明示的に指定すると失われます。

特定のアクションメソッドへの呼び出しを指定するにはどうすればよいですか?

+1

使用 '<のhref =「オン@ Url.Action( "LogOut"、 "Account") "'> .... ' –

答えて

7

試す:オン

<a href="@Url.Action("LogOut", "Account")"> 
    <span class="glyphicon glyphicon-log-out"></span> 
    <span>@Global.LogOut @User.Identity.Name</span> 
</a> 
+2

間違っていますが、私はそれをアップヴォートします。リンクにはテキストのパラメータはありません。アクションとコントローラのみ。 –

+0

@KonradViltersten - 良いキャッチ、ありがとう – fordareh

+2

クレジットを頂くことはできません。コンパイラとintellisenseは私に言った... :) –

0

あなたはこのようなパラメータを使用してMVCのアクションを呼び出すことができます。

<a href="@Url.Action("FilterCustomerGrid", "Customer", new { filterName = "CustomerID", filterValue = @Model.ID })">Click Here</a>; 

お使いのコントローラ側

public ActionResult FilterCustomerGrid(string filterName, string filterValue) 
{ 
return View("ImportExcel"); 
} 
関連する問題