我想返回一个动态创建的图像,而不是从数据库或文件中检索。假设我有一个简单的ZipCode类。我想有一个属性,将返回邮政编码的图像表示。 JSON返回“ZipAsImage”:“System.Drawing.Bitmap”。 是的,我是网络世界编程的新手。是的我已经找了其他的例子,但他们似乎只返回一张图片。谢谢你的帮助。
public class ZipCode
{
public int ZipCodeId { get; set; }
[NotMapped]
public Image ZipAsImage
{
get
{
// Create a blank iamge for now to test.
return new Bitmap(50, 50);
}
set { }
}
}
我的ApiController类
public class ZipCodesController : ApiController
{
private MyContext db = new MyContext();
// GET api/ZipCodesController
public IEnumerable<ZipCode> GetZipCodes()
{
return db.zipcodes.AsEnumerable();
}
// GET api/ZipCodesController/5
public ZipCode GetZipCode(int id)
{
ZipCode zipcode = db.ZipCodes.Find(id);
if (zipcode == null)
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
}
return zipcode;
}
...
我的控制器类
public class ZipCodesController : Controller
{
private MyContext db = new MyContext();
//
// GET: /ZipCodes/
public ActionResult Index()
{
var zipcodes = db.ZipCodes.Include(z => z.State);
return View(zipcodes.ToList());
}
//
// GET: /ZipCodes/Details/5
public ActionResult Details(int id = 0)
{
ZipCode zipcode = db.ZipCodes.Find(id);
if (zipcode == null)
{
return HttpNotFound();
}
return View(zipcode);
}
...
答案 0 :(得分:0)
我不明白你要展示MVC控制器的地方。我错过了什么?但是对于Webapi(ApiController)您可以按如下方式重新编写方法。这应该在一个响应中传递enitre对象。
public HttpResponseMessage GetZipCode(int id)
{
ZipCode zipcode = db.ZipCodes.Find(id);
if (zipcode == null)
{
return Request.CreateResponse(HttpStatusCode.NotFound)
}
return Request.CreateResponse(HttpStatusCode.OK,zipcode);
}
发送二进制图像。您需要设置Straemcontent和content-type。我找到了一个可以帮助您Images with Webapi的链接。浏览整个帖子。你可能会很快弄清楚什么是错过的......