iT邦幫忙

2022 iThome 鐵人賽

DAY 17
1
Software Development

C# ASP.NET MVC實作: 30天打造屬於你的網站應用程式系列 第 17

(DAY 17)C# ASP .NET MVC實作: 30天打造屬於你的網站應用程式-建立購物中心網站實際範例(五)

  • 分享至 

  • xImage
  •  

今天繼續來完成網站範例,前幾天完成了註冊與登入功能,接下來就是登入後顯示會員相關的頁面囉~

● Member/Index

首先要新加入一個控制器名為MemberController,加入時選擇「MVC5控制器-空白」即可,如下圖:

加入後自行會產生 Index()動作方法,如下面Code:

    public class MemberController : Controller
    {
        // GET: Member
        public ActionResult Index()
        {
            return View();
        }
    }

我們想要呈現像Home/Index類似的頁面,同樣顯示產品列表內容,只是導覽列要變更成會員才能看到的資訊,所以我們將Index()內容修改如下Code:

    [Authorize]
    public class MemberController : Controller
    {
        dbShoppingCarEntities db = new dbShoppingCarEntities();

        // GET: Member
        public ActionResult Index()
        {
            var products = db.table_Product.OrderByDescending(m => m.Id).ToList();
            return View("../Home/Index", "_LayoutMember", products);

            // viewName也可以將完整路徑寫出來,但上方寫法較為簡潔
            //return View("~/Views/Home/Index.cshtml", "_LayoutMember", products);
        }
    }

簡單說明上方Code,同樣先建立db實體物件,並且將產品資料撈出來作為Model傳入View。另外Controller上方加入[Authorize]屬性,代表此控制器底下的動作方法都要經過授權過濾器驗證,未通過驗證會顯示下圖錯誤:

DAY 12的時候我們講過,想要指定未通過授權時要執行的動作方法,必須先在方案總管底下專案找到Web.Config這個檔案,然後在<system.web>的標籤內新增如下方Code:

    <authentication mode="Forms">
      <forms loginUrl="~/Home/Login"/>
    </authentication>

另外這邊新的重點在於,可以回傳指定的View頁面與套用版面,注意viewName參數路徑前面加上..可以更簡潔的表達,或是直接將完整路徑寫出來也可以。

登入帳密後畫面呈現如下圖:

由上面可知,我們不需要為Member/Index再建立新的檢視頁面,僅需運用原本的首頁與搭配不同套版頁面。

● Member/Logout

接著是會員登出的部分,在MemberController底下加入Logout()動作方法,如下Code:

        public ActionResult Logout()
        {
            //using System.Web.Security;
            FormsAuthentication.SignOut();
            return RedirectToAction("Login", "Home");
        }

這樣就完成啦~來重新執行看看是否能正常登出,並且應該要導至登入頁面。

● 小結

今天就先到這邊好了,最近實在有點忙,明天我們繼續來撰寫購物車相關的部分,明天見~


上一篇
(DAY 16)C# ASP .NET MVC實作: 30天打造屬於你的網站應用程式-建立購物中心網站實際範例(四)
下一篇
(DAY 18)C# ASP .NET MVC實作: 30天打造屬於你的網站應用程式-建立購物中心網站實際範例(六)
系列文
C# ASP.NET MVC實作: 30天打造屬於你的網站應用程式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言