Web API には、以下のようなアクションがある UserController があります。
[HttpGet]
public string SearchByEmail(string email)
{
// how to get the sitename?
return email;
}
以下のように WebApiConfig にルートを追加しました。
config.Routes.MapHttpRoute(
name: "SearchUserByEmail",
routeTemplate: "{sitename}/User/SearchByEmail",
defaults: new
{
controller = "User",
action = "SearchByEmail"
});
基本的に、ユーザーは以下のパスを使用してアクションを呼び出すことができます。
/mysitename1/user/searchbyemail?email=lala@lala.com
アクション内からサイト名を見つける方法は?
リクエスト内から取得するために、以下のメソッドを作成しました。
private string GetSiteName()
{
return this.Request.RequestUri.Segments[1].Replace("/", String.Empty);
}
しかし、MVC でもっと良い方法はありませんか?