前言

在Extjs二(实现登录)​,今天紧跟上一次内容继续,本次主要就是实现验证码图标控制器。

实现验证码图片控制器

 1.现在项目中添加一个Helper目录,该目录将用来放置一些辅助性的类,包括一些自定义的实用方法。然后把VerifyCode.cs文件复制到该目录下,打开该文件,为其添加命名空间“ExtMVCOne.Helper”,这样做的目的是为了方便控制器访问该类。

接着在控制器目录(Controllers)添加一个名为VerifyCodeController的控制器,因为输出的是文件格式的图片,不是视图,因而需要将返回类型ActionResult修改为FileContentResult。在VerifyCode类中,CreateVerifyCode方法可生成一个4位的验证码,而调用CreateImages方法则可返回图片的字节数组,通过这两个就可以生成图片文件了,代码如下:

public class VerifyCodeController : Controller
{
//
// GET: /VerifyCode/

public FileContentResult Index()
{
VerifyCode v = new VerifyCode();
v.Length = 4;
string code = v.CreateVerifyCode(); //取随机码
Session["vcode"] = code;
v.Padding = 10;
byte[] bytes = v.CreateImage(code);
return File(bytes, @"image/jpeg");
}
}


最后返回一个由CreateImage返回的字节数组构成的文件,文件类型为jpeg格式。

控制器的编码已经完成了,现在来测试一下是否能正常显示图片。在浏览器中打开网站,然后修改地址访问VerifyCode控制器

ExtJs三(实现验证码图片控制器)_ExtJs Mvc

可见验证码图片控制器实现了哦