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

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

<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. ios 基础知识篇 堆和栈的区别

    前言 堆和栈是什么?有什么区别?是干嘛的? 内存管理 移动设备的内存及其有限,每一个APP所能占用的内存是有限制的 (吐槽一下:iPhone6s还是16G起步,还好我也买不起->_-> 扯 ...

  2. 通俗理解 CPU && GPU

    CPU 力气大啥P事都能干,还要协调.GPU 上面那家伙的小弟,老大让他处理图形,这方面处理简单,但是量大,老大虽然能处理,可是老大只有那么几个兄弟,所以不如交给小弟处理了,小弟兄弟多,有数百至数千个 ...

  3. 高效能程序员的七个习惯【csdn】

    从网上看到的,感觉挺不错的! Beautiful is better than ugly. Explicit is better than implicit. Simple is better tha ...

  4. react native的注释

    在react native 中是这样写注释的: {/*这里是注释*/}

  5. Le Chapitre VI

    Ah! petit prince, j'ai compris, peu à peu, ainsi, ta petite vie mélancolique. Tu n'avais eu longtemp ...

  6. 将excel中的数据填入word模板中-VBA

    首先将word模板中需要填写excel中数据的空白处用自己独特的字符串标记,比如   数据001  什么的.如下图: 这样,就可以用vba搜寻这些自己独特的标记来根据excel内容填充word了. 第 ...

  7. noip第29课作业

    1.   钢条切割 [问题描述] 一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi.那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大. ...

  8. 查找对端mac地址

    1.ping对端mac: 2.arp命令查找:

  9. 修改apche的端口号为80后,重启不成功,怎么办

    修改为80后提示如下 Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' f ...

  10. Constructor in depth

    There are two types of constructor:Instance Constructor and Type Constructor(or so-called Static Con ...