以下のような Web API サービスがあります。
[HttpGet]
public UserProfile SearchByEmail(string siteName, string providerName, string email)
{}
providerName をオプションにしたいのですが、以下の URL が機能するはずです。
{0}: http://www.domain.com/sites/siteName1/providerName1/User/SearchByEmail?email=email1
{1}: http://www.domain.com/sites/siteName1/User/SearchByEmail?email=email1
以下のマッピングを作成しました。
config.Routes.MapHttpRoute(
name: "SearchUserByEmail",
routeTemplate: "sites/{siteName}/{providerName}/User/SearchByEmail",
defaults: new
{
controller = "User",
action = "SearchByEmail",
providerName = UrlParameter.Optional
});
ただし、{0} URL のみをサポートしており、{1} URL では機能しません。
providerName をオプションにできるようにマッピングを記述する方法は?