Изменение контрольного текста на главной странице веб-формы с ресурсами - PullRequest
0 голосов
/ 01 февраля 2020

В настоящее время у меня есть проект веб-форм, над которым я работаю. Все мои веб-сайты имеют одну и ту же главную страницу и наследуют от моего пользовательского класса, который наследуется от класса Page, поэтому я могу проверить Session или Cookies et c. из родительского класса. Теперь я хочу получить заголовок Label от мастер-страницы моего класса, который наследует класс Page, и в зависимости от того, на каком сайте я работаю, я хочу, чтобы он отображал другой заголовок. Также название должно быть на двух языках, в зависимости от выбранной культуры. У меня есть три файла .resx по умолчанию, первый и второй язык для каждой страницы. Есть ли способ получить строку из правильного файла .resx в зависимости от культуры? Или весь мой подход неверен и нужно делать что-то еще? Пожалуйста, оставьте комментарий, если вы знаете, вот мой код. Следующая функция вызывается для события preInit моего пользовательского класса Page.

 private void SetTitle()
        {
            Label lbl = (Label)this.Master.FindControl("asplblTitle");

           lbl.Text = ...



        }

1 Ответ

0 голосов
/ 04 февраля 2020

Если у кого-то есть подобная проблема, это в конечном итоге помогло мне:

    private void SetTitle()
    {
        Label lbl = (Label)this.Master.FindControl("asplblTitle");


        string sPagePath = System.Web.HttpContext.Current.Request.Url.AbsolutePath;
        System.IO.FileInfo oFileInfo = new System.IO.FileInfo(sPagePath);
        string sPageName = oFileInfo.Name;

        ResourceManager rm = new ResourceManager("RWA_WebForms.App_GlobalResources." + sPageName, Assembly.GetExecutingAssembly());

        lbl.Text = rm.GetString("Title", Thread.CurrentThread.CurrentCulture);




    } 

Перепробовал все, что я нашел в inte rnet, но, в конечном итоге, этот полный путь помог. Также изменив действие сборки файлов .resx на Embedded Resource.

...