私の新しいWebアプリケーションは、動的Webページであり、サブドメインに基づいて動作します。 つまりhttp://company1234.domain.com パラメータ「company1234」を取得し、Web API呼び出しを行い、表示するページ情報を取得します。ASP.NET MVCルーティング - サブドメイン
これはすべて正常に動作します。私の問題は、私はhttp://company1234.domain.com/Home/GetClient?id=abcd または http://company1234.domain.com/Home/GetClientAccountDetails?model=abcd&acc=1234
私のすべてのルーティングが破壊される。すなわち、パラメータのURLを呼び出す必要がある場合、私はこれを手直し方法を見つけ出す傾けること?ですが
public class SubdomainRoute : RouteBase
{
public override RouteData GetRouteData(HttpContextBase httpContext)
{
if (httpContext.Request == null || httpContext.Request.Url == null)
{
return null;
}
var host = httpContext.Request.Url.Host;
var index = host.IndexOf(".");
string[] segments = httpContext.Request.Url.PathAndQuery.TrimStart('/').Split('/');
if (index < 0)
{
return null;
}
var subdomain = host.Substring(0, index);
string controller = (segments.Length > 0) ? segments[0] : "Home";
string action = (segments.Length > 1) ? segments[1] : "Index";
var routeData = new RouteData(this, new MvcRouteHandler());
routeData.Values.Add("controller", "Home");
routeData.Values.Add("action", action);
routeData.Values.Add("subdomain", subdomain);
return routeData;
}
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
//Implement your formating Url formating here
return null;
}
}
私のコントローラメソッド
public ActionResult Index(string subdomain)
{
//Go get custom page info
var profile = GetProfile(subdomain);
return View("Default", profile);
}
public JsonResult GetClient(string id)
{
//do stuff
}
マイグローバル
public static void RegisterRoutes(RouteCollection routes)
{
routes.Add(new SubdomainRoute());
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("favicon.ico");
routes.MapRoute("Home",
"",
new { controller = "Application", action = "Login" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Home", action = "Index", id = UrlParameter.Optional});
}
私は私が http://company1234.domain.com/Home/GetClient?id=1234呼び出しがあれば、その後、この方法がヒットした http://company1234.domain.com/Home/GetClient
を呼び出す場合それは動作しません
私はこれを修正し、それを動作させるために何をする必要がありますか?