2012-04-24 17 views
5

可能性の重複:
How to I find the absolute url of an action in ASP.NET MVC?
Asp MVC Action link absolute urlMVCで完全なURLを生成しますか?

こんにちは、

特定のアクションのための完全なURLを生成するための簡単な方法はありますか?私はこれを試しました:

urlHelper.Action("Action", "Controller") 

しかし、これは "\"を生成します。

BestRegards

編集1:私はこれを試してみました:

urlHelper.Action("List", "Ad", null, "http"); 

それだけを返す:ローカルホスト:16055。私はlocalhost:16055/Ad/Listのようなものを期待していましたか?

+0

これはビューのコンテキストで、またはコントローラコードでですか? – Tejs

+0

ホスト/プロトコル情報の前に追加するだけですか? –

答えて

15

使用Html.ActionLink(「リンクタイトル」、「アクション」、「コントローラ」)

フルリンクを使用生成するには:

@Html.ActionLink("Link Title", "Action", "Controller", "http", "www.mysampledomain.com", 
       "_blank", new {id = paramValue}, new { @class="someClass" }) 

すべてのパラメータを持つ拡張オーバーロードがあります指定することができます。

var url = UrlHelper.GenerateUrl(null, "MyAction", "MyController", "http", "www.mydomain.com", String.Empty, null, RouteTable.Routes, this.ControllerContext.RequestContext, false); 

url変数は、あなたのURLの文字列表現が含まれます。このコードを使用してコントローラから生成するには、このMSDNの記事http://msdn.microsoft.com/en-us/library/dd492938.aspx

を見てみましょう。それをする必要があります

@ViewBag.MyUrl 

:ビューから

ViewBag.MyUrl = UrlHelper.GenerateUrl(null, "MyAction", "MyController", "http", "www.mydomain.com", String.Empty, null, RouteTable.Routes, 
             this.ControllerContext.RequestContext, false); 

のようにそれを呼び出す:あなたは次のようにViewBagに格納することができます。

+0

コントローラアクションからこれを行うにはどうすればよいですか? – Banshee

+2

Html.ActionLinkはリンクを生成します。完全なURLが必要な場合は、UrlヘルパーUrl.Actionを使用します。そのメソッドのオーバーロードの1つは、スキーマを指定することができます。そうすることで、http:// localhost:1234/controller/action –

+0

のような完全修飾URLが生成されます。 Html.ActionLinkにはフルリンクも作成できる過負荷があります。 –

0

URLは、相対URLを生成します。絶対URLを生成するには、これを見ることができます:How do I find the absolute url of an action in ASP.NET MVC?

+0

私はこれを試しました:urlHelper.Action( "List"、 "Ad"、null、 "http"); http:// localhost:16055 /だけを返します。私はhttp:// localhost:16055/Ad/Listのような何かを期待していましたか? – Banshee

関連する問題