У меня есть представление, которое содержит идентификатор пользователя и столбец изображения.Отображение изображения из базы данных в asp.net mvc
Вот что я пытался сделать, чтобы получить изображение, но я продолжаю получать коробку с красным x вместо фактического изображения.
Посмотреть
<td><img src="<%= Url.Action("DisplayImage" , "User" , new { id = item.id}) %>" alt="" /></td>
Контроллер
public FileContentResult DisplayImage(string id)
{
byte[] image = repository.GetImage(id);
return File(image, "image/jpg");
}
я также пытался возвращающий ActionResult вместо этого и что не работает.
Repository
public Byte[] GetImage(string id)
{
var image = db.GetImage(id).First<GetImageResult>();
if (image == null)
return null;
return image.UserImage;
}
LinqToSql Класс
[Function(Name="dbo.GetImage")]
public ISingleResult<GetImageResult> GetImage([Parameter(DbType="VarChar(8)")] string id)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), id);
return ((ISingleResult<GetImageResult>)(result.ReturnValue));
}
public partial class GetImageResult
{
private System.Byte[] _userImage;
public GetImageResult()
{
}
[Column(Storage="_userImage", DbType="Image")]
public System.Byte[] UserImage
{
get
{
return this._userImage;
}
set
{
if ((this. _userImage!= value))
{
this. _userImage = value;
}
}
}
}
Я убиваю себя весь день, пытаясь получить эту работу, но он просто не работает. Тип возвращаемого значения хранимой процедуры является целым числом (по крайней мере, когда я смотрю на параметры в SQL Server Management Studio, он говорит integer), но я не могу переопределить, что теперь могу?
На самом деле он нажимает на действие DisplayImage с правильными параметрами в UserController и возвращает File (imageByteArray, «image/jpg»), но отображается только поле с красным x. Любая помощь будет принята с благодарностью.
Редактирование: Я попытался отлаживать, добавив в результат действия Reponse.BinaryWrite (imageByteArray) и нажав на URL-адрес напрямую с помощью goign до http://localhost/User/DisplayImage?id=10101010, и изображение для этого пользователя отображается в mspaint.
edit2: Я также сделал источник просмотра, и мой html для этого тега изображения вышел следующим образом.
<td>
<img src='/User.mvc/GetImage?id=U00915441' alt="" />
</td>
Благодаря
У меня возникла такая проблема, когда он просто попытался найти изображение по пути, а не от Маршрута. Вы пробовали отладку, чтобы проверить, входит ли приложение в контроллер? –
Он нажимает на действие контроллера DisplayImage (строковый идентификатор), и он проходит через него без проблем. – zSynopsis
тоже используйте скрипач, чтобы точно увидеть, что возвращается на провод. –