在网上找了很多,都只能生成网址,不能生成名片二维码,于是自己动手。

第一步,写视图界面,主要代码如下:

<script type="text/javascript">
function SubmitURL() {
$("#frmMakeQrURLCode").submit();
}
function SubmitQrCode() {
$("#frmMakeQrCode").submit();
}
</script> <div class="jumbotron">
<h1>名片二维码工具</h1>
<p class="lead">
<form id="frmMakeQrCode" action="/Home/MakeQrCode" method="post">
<table border="">
<tbody><tr>
<th colspan="">名片二维码信息</th>
</tr>
<tr>
<td>姓名:</td>
<td><input type="text" id="txtUsername" name="Username"></td>
</tr>
<tr>
<td>电话号码:</td>
<td><input type="text" id="txtPhone" name="Phone"></td>
<td colspan=""><input type="button" id="btnSubmit" value="生成名片二维码" onclick="SubmitQrCode()"></td>
</tr>
</tbody></table>
</form>
</p>
</div>

第二步,写控制器,处理form的post请求。主要是处理vcard的字符串和生成png图片。主要代码:

[HttpPost]
public ActionResult MakeQrCode()
{
string username = Request.Form["Username"];
string phone = Request.Form["Phone"]; StringBuilder Vcard = new StringBuilder(); Vcard.Append("BEGIN:VCARD");
Vcard.Append("FN:").Append(username).Append(";");
Vcard.Append("ORG:").Append("CVTE").Append(";");
Vcard.Append("TEL;WORK;VOICE:").Append(phone).Append(";");
//Vcard.Append("TEL;TYPE=VOICE,WORK;VALUE=text:").Append(phone).Append(";");
Vcard.Append("END:VCARD");
//结束 //这样写也可以
StringBuilder Vcard1 = new StringBuilder();
Vcard1.Append("BEGIN:VCARD");
Vcard1.Append(System.Environment.NewLine);
Vcard1.Append("VERSION:3.0") ;
Vcard1.Append(System.Environment.NewLine);
Vcard1.Append("FN:" + username) ;
//Vcard1.Append("TEL;WORK;VOICE:" + phone );
Vcard1.Append(System.Environment.NewLine);
Vcard1.Append("TEL;TYPE=VOICE,WORK;VALUE=text:" + phone) ;
Vcard1.Append(System.Environment.NewLine);
Vcard1.Append("ORG:CVTE") ;
Vcard1.Append(System.Environment.NewLine);
Vcard1.Append("END:VCARD");
//string vcard = @"BEGIN:VCARD" + System.Environment.NewLine + "VERSION:3.0" + System.Environment.NewLine + "FN:" + username + "CVTE" + System.Environment.NewLine + "TEL;TYPE=VOICE,WORK;VALUE=text:" + phone + "" + System.Environment.NewLine + "END:VCARD";
//string imageUrl = string.Format(@"<img src=""/Home/BarcodeImage?barcodeText={0}"" />",Server.HtmlEncode( vcard) );
string imageUrl = string.Format(@"<img src=""/Home/BarcodeImage?barcodeText={0}"" />", Server.HtmlEncode(Vcard.ToString()));
return BarcodeImage(Vcard1.ToString()); } [HttpPost]
public MvcHtmlString MakeQrURLCode()
{ string url = Request.Form["URL"]; string imageUrl = "<img src=\"/Home/BarcodeImage?barcodeText=" + url + "\"/>"; return new MvcHtmlString(imageUrl);
} public ActionResult BarcodeImage(String barcodeText)
{
QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
QrCode qrCode = new QrCode();
qrEncoder.TryEncode(barcodeText, out qrCode);
GraphicsRenderer renderer = new GraphicsRenderer(new FixedModuleSize(, QuietZoneModules.Four), Brushes.Black, Brushes.White); Stream memoryStream = new MemoryStream();
renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, memoryStream);
memoryStream.Position = ; var resultStream = new FileStreamResult(memoryStream, "image/png");
resultStream.FileDownloadName = "cvteQR.png"; return resultStream;
}

完整代码下载: Code download

开发ASP.NET MVC 开发名片二维码生成工具 (原创)的更多相关文章

  1. 网站开发进阶(十四)JS实现二维码生成

    JS实现二维码生成 绪 项目开发原语:已然花费半天的时间,仍旧未能将二维码显示在订单中.但是可以在单个页面中显示二维码,结合到angularjs的控制器中就失效了,自己是真的找不到其中的原因了.费解! ...

  2. asp.net mvc PC端二维码支付实例(微信二维码支付)

    一.微信支付方式介绍 微信提供了各种支付方式,试用于各种不同的支付场景,主要有如下几种: 1.刷卡支付 刷卡支付是用户展示微信钱包内的“刷卡条码/二维码”给商户系统扫描后直接完成支付的模式.主要应用线 ...

  3. vue项目条形码和二维码生成工具试用

    项目开发需要,优惠券分不同类型,简单的使用id生成条形码供店铺使用,麻烦点的需要多个字段的就需要使用二维码来展示了,对应的效果如下 条形码(一维码)使用工具code128 需引入code128.js ...

  4. 谷歌zxing 二维码生成工具

    一.加入maven依赖 <!-- 谷歌zxing 二维码 --> <dependency> <groupId>com.google.zxing</groupI ...

  5. 二维码生成工具类java版

    注意:这里我不提供所需jar包的路径,我会把所有引用的jar包显示出来,大家自行Google package com.net.util; import java.awt.BasicStroke; im ...

  6. Java 二维码生成工具类

    /** * 二维码 工具 * * @author Rubekid * */ public class QRcodeUtils { /** * 默认version */ public static fi ...

  7. java二维码生成工具

    import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.ut ...

  8. 二维码生成工具——QRCode

    下载QRCode的源代码:https://github.com/davidshimjs/qrcodejs 引入项目中:<script type="text/javascript&quo ...

  9. Android开发——Android中的二维码生成与扫描

    0. 前言 今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描.本篇旨在帮助有需求的同学快速完成二维 ...

随机推荐

  1. java web各个技术细节总结

    HTML 非表单标签 1.b 粗体   u 下划线 i 斜体 del 删除效果 2.a  超链接  href  target=-blank 3.img 图片 4.frameset(frame)  框架 ...

  2. 2018.11.07 hdu1465不容易系列之一(二项式反演)

    传送门 其实标签只是搞笑的. 没那么难. 二项式反演只是杀鸡用牛刀而已. 这道题也只是让你n≤20n\le20n≤20的错排数而已. 还记得那个O(n)O(n)O(n)的递推式吗? 没错那个方法比我今 ...

  3. Java 获取最近时间

    public static String getStatetime() throws ParseException{ SimpleDateFormat sdf = new SimpleDateForm ...

  4. 第15章:MongoDB-聚合操作--聚合管道--$match

    ①$match 用于对文档集合进行筛选,里面可以使用所有常规的查询操作符. 通常会放置在管道最前面的位置,理由如下: 1:快速将不需要的文档过滤,减少后续操作的数据量 2:在投影和分组之前做筛选,查询 ...

  5. Linux下VNC配置使用总结:开启+桌面配置+安全访问

    操作环境:CentOS 5.3 + Windows XP SP3 32bit + RealVNC 4.1.2 i386 + TigerVNC. 参考:潇湘隐者-Linux系统VNC配置实践总结,萨米的 ...

  6. Group精确定位(canvas定位)

    ## <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> &l ...

  7. 1.8.1suspend与resume方法使用

    暂停线程意味着线程还能恢复运行 suspend()方法暂停线程.resume()恢复线程 测试如下 package com.cky.thread; /** * Created by edison on ...

  8. 知识点:CSS代码语法

    css 样式由选择符和声明组成,而声明又由属性和值组成,如下图所示: 选择符:又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝色,而其他的元素(如ol)不会受到 ...

  9. SSM_CRUD新手练习(1)创建项目

    最近看了SSM框架,网上找了个入门视频的比较简单的小项目熟悉一下框架.现在把整个过程记录下来. 1.创建Maven工程,注意我们选择的是simple project就够了. 这样我们的Maven项目就 ...

  10. .net MongoDB使用

    .net平台的MongoDB使用 CRL快速开发框架系列教程十二(MongoDB支持) MongoDB数据库 mongo-csharp-driver