web-dev-qa-db-ja.com

Web APIからRoute Url to MVCコントローラーアクションを生成する

以下のようなものを使用して、MVCコントローラーアクション内の他のコントローラーアクションへのルートURLを生成することに慣れています。

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メソッドが、ユーザーにサイトの適切なセクションに戻るためのリンクを受信者に提供する電子メールを送信するためです。これは別の展開では機能せず、ルーティングを変更し始めるとこのリンクが壊れるので、これをハードコーディングしないでください。これを行うためのより良いアプローチはありますか?

21
Kramer00

MVCルート名は、Web API UrlHelperでも使用できます。例、

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

または

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