二维码越来越热火了,做电子商务网站,不做二维码,你就OUT了。

一、下载DLL文件(ThoughtWorks.QRCode.dll),并在项目中引用。点此下载

如果你还不知道什么是QRCode二维码,,请移步http://www.cnblogs.com/beasy/archive/2008/06/27/1230991.html

二、视图View

@{
ViewBag.Title = "Index";
}
<script type="text/javascript">
$(function () {
$("#btn").click(function () {
var qrText = $.trim($("#txt").val());
$.post("default/SetQRCode", { qrText: qrText },
function (data) {
if (data == "-1") { alert("生成二维码失败"); return false; }
else {
$("#qrimg").css("display", "block");
$("#qrimg").attr("src", data);
}
});
});
}); </script> <h2>生成二维码</h2>
<label>输入二维码信息:</label><input type="text" id="txt" />
<input type="button" id="btn" value="生成二维码" />
<br />
<br />
<img src="" alt="二维码" id="qrimg" style="border:0;display:none" />

将需要做成二维码的文本,通过ajax传递到控制器中的SetQRCode中进行处理,生成二维码图。

三、控制器(default/SetQRCode)

先在控制器中添加命名空间

using ThoughtWorks.QRCode.Codec;
using System.Drawing.Imaging;
using System.IO;
using System.Text;

然后编写Action

 public ActionResult SetQRCode(string qrText)
{
try
{
if (Request.IsAjaxRequest())
{
//设置编码方式为Byte。也可以设置为AlphaNumeric或Numeric
QRCodeEncoder encoder = new QRCodeEncoder();
encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
//设置大小为4
encoder.QRCodeScale = ;
//设置版本为8
encoder.QRCodeVersion = ;
//设置纠错能力级别为M,也可以设置为H、L或Q
encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
//数据内容编码
System.Drawing.Bitmap img = encoder.Encode(qrText,Encoding.UTF8);
//图片名称
string filename = Guid.NewGuid().ToString() + ".gif";
//图片路径
string rootPath = "../Content/upload/";
string path = Server.MapPath(rootPath);
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
string filepath = path + filename;
//生成图片文件
FileStream fs=new FileStream(filepath,FileMode.OpenOrCreate,FileAccess.Write);
img.Save(fs, System.Drawing.Imaging.ImageFormat.Gif);
fs.Dispose();
img.Dispose();
//返回图片路径
return Content(rootPath + filename);
}
else
return Content("-1"); }
catch
{ return Content("-1");
}
}

只需要三步,二维码就生成了,是不是很简单呢?

快用你的智能手机来扫描看看吧

MVC3学习:利用jquery+ajax生成二维码(支持中文)的更多相关文章

  1. jquery.qrcode生成二维码支持中文

    基本使用方法: 1.首先在页面中加入jquery库文件和qrcode插件. <script type="text/javascript" src="jquery.j ...

  2. 使用jquery-qrcode在页面上生成二维码,支持中文

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. C#Qrcode生成二维码支持中文,带图片,带文字

    C#Qrcode生成二维码支持中文带图片的操作请看二楼的帖子,当然开始需要下载一下C#Qrcode的源码 下载地址 : http://www.codeproject.com/Articles/2057 ...

  4. 使用jquery.qrcode生成二维码支持logo,和中文

    /* utf.js - UTF-8 <=> UTF-16 convertion * * Copyright (C) 1999 Masanao Izumo <iz@onicos.co. ...

  5. C# Qrcode生成二维码支持中文,带图片,带文字 2015-01-22 15:11 616人阅读 评论(1) 收藏

    1.下载Qrcode库源码,下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library 2.打开源码时,部分类库 ...

  6. Qrcode生成二维码支持中文,带图片,带文字

    1.下载Qrcode库源码, 下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library2.打开源码时, 部分类 ...

  7. 利用QrCode.Net生成二维码 asp.net mvc c#

    利用QrCode.Net生成二维码 asp.net mvc c# 里面介绍了.net的方式及js的方式,还不错. 里面用到的qrcode.net的类库下载地址:https://qrcodenet.co ...

  8. 利用google api生成二维码名片

    利用google api生成二维码名片 二维条码/二维码可以分为堆叠式/行排式二维条码和矩阵式二维条码.堆叠式/行排式二维条码形态上是由多行短截的一维条码堆叠而成:矩阵式二维条码以矩阵的形式组成,在矩 ...

  9. 使用jquery.qrcode生成二维码及常见问题解决方案

    转载文章  使用jquery.qrcode生成二维码及常见问题解决方案 一.jquery.qrcode.js介 jquery.qrcode.js 是一个纯浏览器 生成 QRcode 的 jQuery ...

随机推荐

  1. s4-3 CSMA

    载波侦听多路访问协议  CSMA:Carrier Sense Multiple Access 特点:"先听后发" 改进ALOHA协议的侦听/发送策略  分类 非持续式 持 ...

  2. 第21章:MongoDB-聚合操作--聚合管道--$geoNear

    ①$geoNear 使用“$geoNear”可以得到附近的坐标点. ②范例:准备测试数据

  3. Oracle 数据库 dbConsole 配置笔记

    Oracle安装后,DBConsole有时安装会失败,这时可以通过以下命令恢复: set oracle_sid=orclemca -repos recreateemca -config dbcontr ...

  4. python advanced programming (Ⅲ)

    IO编程 IO在计算机中指Input/Output.由于程序和运行时数据是在内存中驻留,由CPU来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口. IO编程中,Stream(流)是一个 ...

  5. 用css写出下拉框(代码转自wq群)

    做网易云音乐首页时遇到的问题,鼠标指在右上角头像时出现下拉框. <style>/* css*/ #body{ float: left; } #xialakuang{ background- ...

  6. 一.认识python.变量.数据类型.条件if

    01.万恶之源-python基础 ⼀.python介绍  python的创始⼈为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决⼼ ...

  7. SRM484

    又Orz了一发rng_58.. 250pt: 题意:给定一种兔子数:当S(x*x) = S(x)*S(x)时,x为兔子数,其中S(x)表示各个数位之和. 思路:本来想了一个复杂度很高的想法..然后想看 ...

  8. AngularJS 路由及SPA理解

    一.路由及SPA理解 路由允许我们通过不同的 URL 访问不同的内容,可实现多视图的单页web应用(SPA);通常我们的URL形式为 http://runoob.com/first/page,但在单页 ...

  9. AngularJS 事件广播与接收 $broadcast,$emit,$on 作用域间通信 封装factory服务 发布订阅

    不同作用域之间通过组合使用$broadcast,$emit,$on的事件广播机制来进行通信. 一.说明 1.广播 $broadcast 说明:将事件从父级作用域传播至本作用域及子级作用域. 格式:$b ...

  10. Delphi 在DLL中使用DevExpress控件时出错解决办法

    测试环境 DevExpress VCL 14.1.3 和XE7 问题:在dll使用cxGrid控件时  如果不添加列标题 则不报错   查询无数据集显示,如果加上标题 就报错了 这段为报错部分 fun ...