首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

mvc停返回一个二维码显示

2013-07-11 
mvc下返回一个二维码显示?本帖最后由 a102470 于 2013-06-27 11:40:32 编辑使用的是thoughtworks.QRCode.d

mvc下返回一个二维码显示?
本帖最后由 a102470 于 2013-06-27 11:40:32 编辑 使用的是thoughtworks.QRCode.dll来生成二维码的,代码如下:[HttpPost]
        public ActionResult GetImg()
        {
            if (Request.Params["chl"] == null) { return null; }
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            try
            {
                int scale = Convert.ToInt16(Request.Params["size"].ToString());
                qrCodeEncoder.QRCodeScale = scale;
            }
            catch { }
            String data = Request.Params["chl"].ToString();
            MemoryStream ms = new MemoryStream();
            System.Drawing.Image myimg = qrCodeEncoder.Encode(data, System.Text.Encoding.UTF8); //kedee 增加utf-8编码,可支持中文汉字  
            myimg.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
            myimg.Dispose();
            return File(ms.ToArray(), "image/jpeg");
        } 


function get(){
           var url = "../../AMSBasicInfo/GetImg";
                var tt = {
                    "chl":123,
                    "size": 4
                };
                $.post(url, tt})
}
要显示的区域:
<div id="DR" class="easyui-window"  data-options="iconCls:'icon-save',modal:true,autoCenter:true" style="width:340px;height:320px;padding: 5px;" closed="true">


    <div class="easyui-layout" data-options="fit:true">
        <form id="QrCode" novalidate method="post">
            <div data-options="region:'center',split:true" style="width: 320px">
                <div id="printArea">                    
                    <div id="qrcodePrintArea"                      style="position:absolute;width:180px;height:180px;" >                      
                    <img src="../../AMSBasicInfo/GetImg" alt="mvc停返回一个二维码显示" />
                    </div>                     
                </div>
                <br />
                
            </div>
            <div data-options="region:'south',border:false" style="text-align: center;padding:5px;">
                <a class="easyui-linkbutton"  data-options="iconCls:'icon-ok'" href="javascript:void(0)" onclick="get()">重新生成</a>
                <a class="easyui-linkbutton"  data-options="iconCls:'icon-print'" href="javascript:void(0)" onclick="print()">打印</a>
                <a class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" href="javascript:void(0)" onclick="$('#DR').window('close')">取消</a>
            </div>
        </form>


    </div>
</div>

代码那里出现问题了呢?为何不能在要显示的区域显示呢? 二维码 MVC
[解决办法]
var url = "../../AMSBasicInfo/GetImg"; 不要使用相对的~
var url = "/AMSBasicInfo/GetImg";

<img src="/AMSBasicInfo/GetImg"/>看能不能显式出来

/// <summary>
        /// 生成验证码
        /// </summary>
        /// <returns></returns>
        public FileContentResult CreateImage()
        {
            string s = (new Random()).Next(1000, 9999).ToString();
            SessionHelper.ValidateCode = s;
            byte[] bytes = DrawingHelper.DrawString(s, 22, 12);

            Response.Clear();
            //Response.ContentType = "image/Gif";

            Response.Buffer = false;
            Response.ExpiresAbsolute = System.DateTime.Now.AddYears(-10);
            Response.Expires = 0;
            Response.CacheControl = "no-cache";

            return File(bytes, "image/JPEG");

        }
[解决办法]

引用:
Quote: 引用:

直接用js把生成的图片路径赋给img的src属性
       $.post(url, tt, function (res) {
                    var pic = document.getElementById("picture");


                    pic.src = res;
                });
<img id="picture" src="" />老大,我这样写,为何获得的pic都是null啊,res返回的是一个图片所在的网址  


你调试 确定 URL 是正确的调用了你controller里面的方法么? ajax 给的 路劲不要写相对的 如路上那样就好  或者 var url = '@Url.Action("GetImg","AMSBasicInfo")';

热点排行