asp.net-mvc - 无法在 asp.net mvc multiLanguage 本地化 url 项目中使用 ckeditor 上传图像
问题描述
我无法在 Ckeditor 中上传图像,因为我的项目是多语言的,并且路由部分无法正常工作。我的 url 格式是/language/controller/action
,如果每个 url 没有“语言”部分,我将它重定向到带有语言元素的 url。
但在这种情况下,ckeditor url 也重定向。
我想为/ckeditor/Uploadimage
没有“语言”部分的路由进行路由,并且路由可以在不重定向的情况下正常工作。(这是发布请求,重定向后它变为获取)。
我需要这方面的帮助。
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);
}
}
}
解决方案
推荐阅读
- node.js - 无法在 Mac 上使用 conda 安装最新的 nodejs
- r - Shiny Server Open Source 是否支持多线程?
- java - Ubuntu 20.04 上的 JNA 未定义符号
- javascript - 为什么大 eojson 不显示在 Here Map 上?
- java - 无需单击按钮即可更改 JLabel 文本
- javascript - SSE -(发送服务器事件)
- python - 我想创建一个 if 条件:如果 questions1 的输入等于“值”-> 打印后续问题 2
- php - mysql中未显示阿拉伯字符
- angular - 无法通过事件访问函数父级
- android - 在 android 中使用旧版支持库选项