Как использовать ресурс изображения на веб-сайте asp.net?
-
05-07-2019 - |
Вопрос
У меня есть сайт С#, на котором используется множество изображений со встроенным текстом на английском языке.
Как я могу использовать стандартный файл ресурсов для замены изображений в зависимости от языка?
У меня есть файл 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-адреса вместо сохранения изображения в файле ресурса.
Другие советы
Вы можете попытаться создать простой «сервис изображений», который сможет обслуживать изображения в нужном формате из встроенных ресурсов.
Вам не нужно создавать сам веб-сервис, вы просто создаете страницу 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, я добавил runatserver и идентификатор для него