读书人

mvc停返回一个二维码显示

发布时间: 2013-07-11 15:38:46 作者: rapoo

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 style="max-width: 100%;height: auto;width: auto\9;" src="http://www.reader8.com/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")';

读书人网 >asp.net

热点推荐