Я не могу загрузить изображение в 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);
}
}
}