Файл ресурсов .NET успешно ссылается только в той же папке, что и MVC-представления - PullRequest
1 голос
/ 10 ноября 2011

У меня есть веб-приложение MVC3, и я использую файлы ресурсов .resx для всего содержимого моего представления. Я держал файлы resx в том же месте, что и использующие их представления, однако, если я переместил файлы ресурсов в другую папку в том же проекте , я получу эту ошибку:

Не удалось найти ресурсы, подходящие для указанной культуры или нейтральная культура. Удостовериться "Application.Web.Views.Login.LoginStrings.resources" был правильно встроенный или связанный в сборку «Application.Web» во время компиляции, или что все необходимые спутниковые сборки являются загружаемыми и полностью подписан.

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

Это пример того, как я использую класс ресурсов:

<ul class="itemised-list">
        <li class="italic">
            @LoginStrings.Info_Login
        </li>
        <li>
            <label>@SharedStrings.Account_Username</label>
            @Html.TextBoxFor(m => m.Username)
            @Html.ValidationMessageFor(m => m.Username)
        </li>
        <li>
            <label>@SharedStrings.Account_Password</label>
            @Html.PasswordFor(m => m.Password)
            @Html.ValidationMessageFor(m => m.Password)
        </li>
        <li>
            <input type="submit" value="@LoginStrings.Btn_Login" class="button" />
        </li>
</ul>

Как видите, довольно стандартный, и это работало все время. Затем я перемещаю файл resx в другое место в проекте и bam ошибка времени выполнения: (

1 Ответ

0 голосов
/ 10 ноября 2011

Пример кода очень поможет понять, чего вы пытаетесь достичь.

Один из подходов заключается в использовании строго типизированных ресурсов.В этом случае вам придется изменить модификатор доступа к файлу ресурсов на внутренний (на панели инструментов при открытии файла .resx в VS)?

enter image description here

Если вы установитеВнутренний (общедоступный, если он находится в другой сборке) будет создан файл кода для файла .resx, и вы сможете получить доступ к строго типизированным ресурсам.

Таким образом, вы сможете получить доступ к ресурсам.следующим образом:

ResourceFile.ResourceItem
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...