Что я хотел бы сделать в первую очередь, так это иметь простую функцию подкачки.
Secound Я бы просто сделал id Link
что-то вроде getImage?id=5
.
Когда json слишком великзаймет много времени, чтобы опубликовать его, а также наличие изображения в JSON просто не умная идея, подумайте об этом.Изображение a byte[]
при преобразовании его в json будет пытаться преобразовать его в base64string, что займет время.
Время, необходимое для преобразования json, а также отправки json.
Так что id Link
- лучшее решение, которое я мог найти.
public class Product{
public int Id { get; set; }
public string Name { get; set; }
[JsonIgnore]
public byte[] Image { get; set }
}
// controller
public List<Product> Get(){
return db.Products.ToList();
}
public FileResult GetImage(int id){
var img = db.Products.First(x=> x.Id == id).Image;
return File(img, System.Net.Mime.MediaTypeNames.Application.Octet, "test");
}
/// now lets say that you present your product with js as an example
var products = getProductByAjax();
products.forEach(x=> {
// and here is the image
var img = "<img src=/Home/GetImage?id="+x.Id+" />";
})