2011-10-26 18 views

答えて

36

あなたがフラグメントを指定することができますActionLinkヘルパーのオーバーロードがあります:

@Html.ActionLink(
    "Link Text",   // linkText 
    "Action",    // actionName 
    "Controller",   // controllerName 
    null,     // protocol 
    null,     // hostName 
    "fragment",   // fragment 
    new { id = "123" }, // routeValues 
    null     // htmlAttributes 
) 

は(デフォルトルートを想定)を生成します:

<a href="/Controller/Action/123#fragment">Link Text</a> 

UPDATE:

は、

とし、リダイレクトを実行するコントローラアクション内でこれを実行する場合は、 GenerateUrlメソッドを使用します。

public ActionResult Index() 
{ 
    var url = UrlHelper.GenerateUrl(
     null, 
     "Action", 
     "Controller", 
     null, 
     null, 
     "fragment", 
     new RouteValueDictionary(new { id = "123" }), 
     Url.RouteCollection, 
     Url.RequestContext, 
     false 
    ); 
    return Redirect(url); 
} 
+0

ニース、それについて知りませんでした。ありがとう! –

+0

ダーリンに感謝します。この場合、私はコントローラからのURLを生成するアクションへのリダイレクトを使用しています、そしてそれはフラグメントを含まない6つの過負荷しか持っていません。これに対する解決策はありますか? – DevDave

+4

この場合、コントローラ内で[UrlHelper.GenerateUrl](http://msdn.microsoft.com/en-us/library/ee703653.aspx)メソッドを使用すると、フラグメントを指定してから、結果のURL。私は例を提供するために自分の投稿を更新しました。 –

関連する問題