2013-05-31 3 views
1

В нашем приложении ASP.NET MVC используется оконный элемент KendoUI для отображения сообщений о ходе выполнения для пользователей. Он отлично работает при использовании на языках с латинскими символами, но при настройке языка веб-приложения на русский язык, где сообщение должно сказать что-то вродеОкно KendoUI не отображает Цириллические символы

Составляем рапорт, пожалуйста, подождите!

Получаем, что отображается на картинке.

Window title in Russian displaying incorrectly

Является ли это ошибка или мы пропускаем любой конфигурации? Я думаю, это может быть что-то, что связано с Unicode.

Заранее спасибо.!

+0

Строка HTML-кодирования. Он должен быть сначала декодирован, как это делает HttpUtility.HtmlDecode(). Не так ясно, где это нужно сделать. –

+0

Привет @HansPassant Что мы делаем, это назначить строковый ресурс в представлении, и он работает для любого другого языка (например, английского, испанского ...). Должны ли мы применять HTMLDecode? $ ("# диалоговые") kendoWindow ({ ширина:. "@ (StrLengthHeaderWindowLoader) точек", высота: "150px", название: "@ Resources.StringResources.GenerateReport", \t \t \t действия: [ "Закрыть"], \t \t \t модальный: правда, \t \t \t близко: dialogClose, \t \t}); – Jaime

ответ

2

Поздно, но это один из способов сделать это: используйте метод Raw из System.Web.Mvc.HtmlHelper. Вот код для использования его в качестве расширения:

using System.Web; 
using System.Web.Mvc; 
namespace Web.Utils 
{ 
    public static class HtmlHelperExtensions 
    { 
     public static IHtmlString Resource(this HtmlHelper helper, string value) 
     { 
      return helper.Raw(value.Replace("\"", "\\\"")); 
     } 
    } 
} 

Также кавычки предшествуют с косыми чертами, для того, чтобы безопасно использовать в шаблоне управления Telerik.

Тогда расширение может использоваться в коде следующим образом:

@(Html.Kendo().Window().Title(Html.Resource(your_string)) 
Смежные вопросы