Asp.net mvc 2 如何在ASP.net MVC视图中显示图像属性

Asp.net mvc 2 如何在ASP.net MVC视图中显示图像属性,asp.net-mvc-2,qr-code,Asp.net Mvc 2,Qr Code,我想将我的卡片代码转换为二维图像,所以我在我的项目中添加了一个参考。然后我在助手类中创建了一个方法: public static Image GenerateQRCode(String code) { QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H); QrCode qrCode = new QrCode(); qrEncoder.TryEncode(code, out qrCode); Renderer re

我想将我的卡片代码转换为二维图像,所以我在我的项目中添加了一个参考。然后我在助手类中创建了一个方法:

public static Image GenerateQRCode(String code)
{
  QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
  QrCode qrCode = new QrCode();
  qrEncoder.TryEncode(code, out qrCode);
  Renderer renderer = new Renderer(5, Brushes.Black, Brushes.White);
  MemoryStream ms = new MemoryStream();
  renderer.WriteToStream(qrCode.Matrix, ms, System.Drawing.Imaging.ImageFormat.Png);
  return System.Drawing.Image.FromStream(ms);
}
然后在我看来,我调用这个函数:

  <%
     System.Drawing.Image image = ICEWeb.HelperClasses.HelperClass.GenerateQRCode("test");
  %>

但是它只显示
System.Drawing.Bitmap
,有人知道如何显示从我的函数
GenerateQRCode()
返回的System.Drawing.Image吗


Thna

通过编写自定义操作结果来轻松完成。您当前拥有的
GenerateQRCode
方法可能会被遗留在旧应用程序中

public class QRCodeResult : ActionResult
{
    public QRCodeResult(string code)
    {
        Code = code;
    }

    public string Code { get; private set; }

    public override void ExecuteResult(ControllerContext context)
    {
        var response = context.HttpContext.Response;
        response.ContentType = "image/png";

        QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
        QrCode qrCode = new QrCode();
        qrEncoder.TryEncode(Code, out qrCode);
        Renderer renderer = new Renderer(5, Brushes.Black, Brushes.White);
        renderer.WriteToStream(qrCode.Matrix, response.OutputStream, System.Drawing.Imaging.ImageFormat.Png);
    }
}
然后是控制器操作:

public ActionResult QRCode(string code)
{
    return new QRCodeResult(code);
}
最后,在要显示二维码的某些视图中,使用
“alt=”“/>
<img src="<%: Url.Action("QRCode", new { code = "test" }) %>" alt="" />