Невозможно загрузить изображение с помощью ckeditor в asp.net mvc multiLanguage локализованный проект URL - PullRequest
0 голосов
/ 16 января 2019

Я не могу загрузить изображение в Ckeditor, потому что мой проект многоязычный, а раздел маршрутизации не работает должным образом. Мой формат URL-адреса /language/controller/action, и если у каждого URL-адреса нет раздела «Язык», я перенаправляю его на URL-адрес с элементом языка.

Но и в этом случае редирект URL-адреса ckeditor тоже

Я хочу сделать маршрутизацию для /ckeditor/Uploadimage, у которой нет раздела «language», и маршрутизация работает должным образом без перенаправления. (Это почтовый запрос, и после перенаправления он становится get).

Мне нужна помощь по этому поводу.

Файл конфигурации ckeditor:

config.filebrowserImageUploadUrl = '/CKEditor/UploadImage';

файл маршрутизации:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.Add("BlogDetails", new SeoFriendlyRoute("{lang}/Home/BlogDetail/{id}",new RouteValueDictionary(new { controller = "Home", action = "BlogDetail" }),new MvcRouteHandler()));
        routes.Add("RoomDetails", new SeoFriendlyRoute("{lang}/Home/Room/{id}",new RouteValueDictionary(new { controller = "Home", action = "Room" }),new MvcRouteHandler()));
        routes.Add("BlogCategories", new SeoFriendlyRoute("{lang}/Home/Blog/{id}",new RouteValueDictionary(new { controller = "Home", action = "Blog" }),new MvcRouteHandler()));
        routes.MapRoute(
            name: "DefaultLocalized",
            url: "{lang}/{controller}/{action}/{id}",
            defaults: new
            {
                controller = "Home",
                action = "Index",
                id = UrlParameter.Optional
            });
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

для перенаправления URL-адресов с неязыковых на URL-адреса с языком:

protected void Application_BeginRequest()
    {
        var routes = RouteTable.Routes;

        var httpContext = Request.RequestContext.HttpContext;
        if (httpContext == null) return;

        var routeData = routes.GetRouteData(httpContext);
        var lang = routeData.Values["lang"];
        if (lang != null && !string.IsNullOrWhiteSpace(lang.ToString()) && (lang.ToString() == "fa" || lang.ToString() == "en"))
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang.ToString());
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang.ToString());
            HttpCookie cooki = new HttpCookie("Language");
            cooki.Value = lang.ToString();
            cooki.Expires.AddYears(1);
            Response.Cookies.Add(cooki);
        }
        else
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies["Language"];
            if (cookie != null && cookie.Value != null && (cookie.Value == "fa" || cookie.Value == "en"))
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cookie.Value);
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(cookie.Value);
                var ur = string.Format("{0}://{1}{2}{3}{4}",
            System.Web.HttpContext.Current.Request.Url.Scheme,
            System.Web.HttpContext.Current.Request.Url.Host,
            System.Web.HttpContext.Current.Request.Url.Port == 80 ? string.Empty : ":" + System.Web.HttpContext.Current.Request.Url.Port,
            "/" + cookie.Value,
            System.Web.HttpContext.Current.Request.RawUrl);
               Response.RedirectPermanent(ur);
            }
            else
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fa");
                Thread.CurrentThread.CurrentUICulture = new CultureInfo("fa");
                HttpCookie cook = new HttpCookie("Language");
                cook.Value = "fa";
                cook.Expires.AddYears(1);
                Response.Cookies.Add(cook);
                var ur = string.Format("{0}://{1}{2}{3}{4}",
                System.Web.HttpContext.Current.Request.Url.Scheme,
                System.Web.HttpContext.Current.Request.Url.Host,
                System.Web.HttpContext.Current.Request.Url.Port == 80 ? string.Empty : ":" + System.Web.HttpContext.Current.Request.Url.Port,
                "/fa",
                System.Web.HttpContext.Current.Request.RawUrl);
                Response.RedirectPermanent(ur);
            }
        }
    }
...