У меня есть сайт C#, который использует много изображений со встроенным английским текстом.
Как я могу использовать стандартный файл ресурсов для замены изображений в зависимости от языка?
У меня есть файл resx в моем каталоге App_GlobalResources, но я не могу правильно подключить его к элементу управления asp: image для imageurl.
Идеи?
Обновлено:
Для получения дополнительной информации, вот код тега изображения:
<asp:image runat = "server" ID = "img2" ImageUrl = "<%$Resources: Resource, cs_logo %>" />
Результат на стороне клиента:
<img id = "img2" src = "System.Drawing.Bitmap" style = "border-width:0px;" />
Обратите внимание, что источник явно не тот, что я ожидал ...
Похоже, это единственный вариант. Обновите свой ответ, и я отмечу его как принятый.





вы можете сохранить URL-адрес изображения в файле ресурсов и использовать следующий встроенный код в элементе управления
<asp:Image ImageUrl = "<%$resources:Image1 %>" />
этот связь может быть полезен в том, что вы пытаетесь выполнить
или же
вы также можете попытаться сохранить ресурс в виде строки и установить значение URL-адреса вместо сохранения изображения в файле ресурсов.
не забудьте сохранить и добавить ключ cs_logo на все страницы конкретных ресурсов и страниц по умолчанию, т.е. Default.aspx.resx и не только на ваших конкретных страницах культуры.
У меня есть файл Resources.resx, который содержит 1 ресурс cs_logo, я просто пытаюсь заставить его работать на английском языке по умолчанию ...
Хорошо, мимо этого. Однако изображение не загружается и выдает следующее для URL: локальный: 32672 / System.Drawing.Bitmap
Одна вещь, которую вы можете попытаться сделать, - это создать простую «службу изображений», которая может обслуживать изображение в надлежащем формате из встроенных ресурсов.
Вам не нужно создавать саму веб-службу, вы просто создаете страницу aspx и в коде, стоящем за ней, меняете Response.ContentType на image / png или любой другой формат, который вы предпочитаете. Для этого также требуется параметр get в URL-адресе самой страницы, но его можно легко отфильтровать. Таким образом, метод Page_Load вашего сервиса изображений может выглядеть примерно так:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim FinalBitmap As Bitmap
Dim strRenderSource As String
Dim msStream As New MemoryStream()
strRenderSource = Request.Params("ImageName").ToString()
' Write your code here that gets the image from the app resources.
FinalBitmap = New Bitmap(Me.Resources(strRenderSource))
FinalBitmap.Save(msStream, ImageFormat.Png)
Response.Clear()
Response.ContentType = "image/png"
msStream.WriteTo(Response.OutputStream)
If Not IsNothing(FinalBitmap) Then FinalBitmap.Dispose()
End Sub
Затем снова на странице ASPX у вас есть ...
<asp:Image ImageUrl = "http://localhost/GetImage.aspx?ImageName=Image1" />
Да, и не забудьте импортировать System.Drawing и System.Drawing.Imaging на страницу.
если вы используете файл глобальных ресурсов, вам нужно добавить его вот так
<img id = "WelocmeICon" runat = "server" alt = "welcome icon"
src = "<%$resources:NmcResource,WelcomeIcon %>" />
и поскольку я использую img control, я добавил runatserver и id для него
если бы вы пытались сохранить ресурс в виде строки и установить значение для местоположения URL-адреса вместо сохранения изображения в файле ресурсов, если нет, вам нужно будет буферизовать содержимое