Facebook android shareDialog закрывается после открытия

Чтобы захватить субдомен при использовании веб-API, переопределите селектор действий, чтобы ввести параметр запроса subdomain. Затем используйте параметры запроса поддомена в действиях ваших контроллеров следующим образом:

public string Get(string id, string subdomain)

Этот подход делает отладку удобной, поскольку вы можете указать параметр запроса вручную при использовании localhost вместо фактическое имя хоста (подробности см. в стандартном ответе маршрутизации MVC5 ). Это код для Action Selector:

class SubdomainActionSelector : IHttpActionSelector
{
    private readonly IHttpActionSelector defaultSelector;

    public SubdomainActionSelector(IHttpActionSelector defaultSelector)
    {
        this.defaultSelector = defaultSelector;
    }

    public ILookup GetActionMapping(HttpControllerDescriptor controllerDescriptor)
    {
        return defaultSelector.GetActionMapping(controllerDescriptor);
    }

    public HttpActionDescriptor SelectAction(HttpControllerContext controllerContext)
    {
        var routeValues = controllerContext.Request.GetRouteData().Values;
        if (!routeValues.ContainsKey("subdomain")) {
            string host = controllerContext.Request.Headers.Host;
            int index = host.IndexOf('.');
            if (index >= 0)
                controllerContext.Request.GetRouteData().Values.Add("subdomain", host.Substring(0, index));
        }
        return defaultSelector.SelectAction(controllerContext);
    }
}

Замените селектор действий по умолчанию, добавив его в WebApiConfig.Register:

config.Services.Replace(typeof(IHttpActionSelector), new SubdomainActionSelector(config.Services.GetActionSelector()));

13
задан arash moeen 10 May 2015 в 17:47
поделиться