登錄窗口完成后,還需要幾個步驟才能完成登錄。現在先來完成輸出驗證碼圖片的控制器。要完成這個,需要使用VerifyCode類,該類是在網上找的,因為年代久遠,出處都忘記了,在此向作者說聲抱歉。
先在項目下創建一個Helper目錄,該目錄將用來放置一些輔助性的類,包括一些自定義的實用方法。然后把VerifyCode.cs文件復制到該目錄下,打開該文件,為其添加命名空間“SimpleCMS.Helper”,這樣做的目的是為了方便控制器訪問該類。
接著在控制器目錄(Controllers)添加一個名為VerifyCodeController的控制器,控制器的代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace SimpleCMS.Controllers
{
public class VerifyCodeController : Controller
{
//
//GET: /VerifyCode/
public ActionResult Index()
{
return View();
}
}
}
因為輸出的是文件格式的圖片,不是視圖,因而需要將返回類型ActionResult修改為FileContentResult。
接著添加對VerifyCode類的引用:
using SimpleCMS.Helper;
在VerifyCode類中,CreateVerifyCode方法可生成一個6位的驗證碼,而調用CreateImages方法則可返回圖片的字節數組,通過這兩個就可以生成圖片文件了,代碼如下:
public FileContentResult Index()
{
VerifyCode v = new VerifyCode ();
string code =v.CreateVerifyCode(); // 取隨機碼
Session[ "vcode" ] = code;
v.Padding = 10;
byte [] bytes =v.CreateImage(code);
return File(bytes, @"image/jpeg" );
}
Session中的關鍵字可以根據自己喜歡的名字定義,不一定是vcode。Padding屬性與頁面中使用CSS定義內補丁的作用一樣的。最后返回一個由CreateImage返回的字節數組構成的文件,文件類型為jpeg格式。
控制器的編碼已經完成了,現在來測試一下是否能正常顯示圖片。可直接按Ctra+F5,或在主菜單中選擇調試,開始執行(不調試),在瀏覽器中打開網站,然后修改地址訪問VerifyCode控制器,如果能顯示如圖8所示的結果(圖中的驗證碼會不同),表示控制器已經完成了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
