21

からMVCコントローラのアクションへのIは、以下のようなものを使用してMVCコントローラのアクション内の他のコントローラのアクションにルートURLを生成するために使用しています:生成ルートのURL WebAPIの

public class ApplicationController : Controller 
{ 
    public ActionResult Index() 
    { 
     var url = Url.RouteUrl("routename", 
      new { controller = "Application", Action = "Index2" , other="other" }); 
    } 

    public ActionResult Index2(string other) 
    { 
    } 
} 

しかし、私はまたにできるようにする必要がありますwebapi内からMVCコントローラアクションへのURLを生成するにはどうすればよいですか?

APIControllerにはUrlHelperプロパティがあるようですが、これを使用する方法の例は見つけられず、自分自身を理解することができませんでした。

更新: URLを生成しようとしているのは、この特定のwebapiメソッドが、受信者にサイトの適切なセクションにユーザーを誘導するためのリンクを提供する電子メールを送信するからです。私は明らかにこれをハードコーディングから取り除きたいのですが、異なる展開ではうまくいかず、またルーティングを変更し始めるとこのリンクが壊れてしまいます。これを行うにはより良いアプローチがありますか?

答えて

27

Web API UrlHelperでMVCルート名を使用することもできます。たとえば、

Url.Link("Default", new { Controller = "Account", Action = "Login" }); 

または

Url.Route("Default", new { Controller = "Account", Action = "Login" }); 
+0

あなたは正しいです。ありがとう – Kramer00

+0

@TrueBlueAussieあなたは間違ったUrlHelperを見ています。 mvcではなくhttpを見てください。 – Steve

+1

http://msdn.microsoft.com/en-us/library/system.web.http.routing.urlhelper_methods(v=vs.118).aspx属性ルーティングを使用している場合は、ルートに名前を付けます。 – Steve

関連する問題