あなただけのワンアクションで、コントローラ上でこれを行うことができますが、あなたが同じアクションにすべての要求をルーティングすることになりますO/Wそのためのルート制約を必要としています。ここではサンプルです:先頭にこのルート入れ
:
routes.MapRoute(
"RedirectSiteRoute",
"{site}",
new { controller = "SiteRouter", action = "Route" },
new { site = new SiteRouteConstraint() }
)
あなたルート制約は次のようになります。
public class SiteRouteConstraint : IRouteConstraint {
public bool Match(System.Web.HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) {
string[] allowedSites = new[] { "site1", "site2", "site3" };
return
allowedSites.Any(x => x == values[parameterName].ToString());
}
}
を、私は許すのサイトのためにそこにダミーのロジックを置くが、どのようにそのデータはあなた次第です。
コントローラのアクション:
public class SiteRouterController : Controller {
public ActionResult Route(string site) {
return Redirect(string.Format("www.{0}.com", site));
}
}
私はあなたのアイデアを得たいと考えています。
感謝。私はそれを実装します。 – LLM