21

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

4

1 に答える 1

29

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

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

また

 Url.Route("Default", new { Controller = "Account", Action = "Login" });
于 2013-03-06T20:08:48.203 に答える