iT邦幫忙

2022 iThome 鐵人賽

DAY 16
1
Software Development

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

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

  • 分享至 

  • xImage
  •  

昨天完成註冊頁面了,接著來完成登入頁面的部份。

● Home/Login (GET)

HomeController底下新增Login()動作方法,如下Code:

        public ActionResult Login()
        {
            return View();
        }

新增對應View,加入頁面時範本選擇「Empty」,如下圖:

頁面加入後修改內容如下方Code:


@{
    ViewBag.Title = "會員登入";
}

<h2>會員登入</h2>

@using (Html.BeginForm())
{
    <div class="form-group">
        @Html.Label("帳號", new { @for = "UserId" })
        <div>
            @Html.TextBox("UserId", null, new { id = "UserId", @class = "form-control", required = "required" })
        </div>
    </div>
    <div class="form-group">
        @Html.Label("密碼", new { @for = "Password"})
        <div>
            @Html.Password("Password", null, new { id = "Password", @class = "form-control", required = "required" })
        </div>
    </div>
    <div class="form-group">
        <input type="submit" value="登入" class="btn btn-default" />
        <div class="text-danger">
            @ViewBag.Message
        </div>
    </div>
}

記得輸入帳密欄位是依靠其name屬性繫結,才能透過表單提交後傳遞參數哦~

這邊如果不習慣用HTMLHelper寫的話也可以自行改成HTML格式,參考如下Code:

<form action="~/Home/Login" method="post">
    <div class="form-group">
        <label for="UserId">帳號</label>
        <div>
            <input type="text" id="UserId" name="UserId" class="form-control" required />
        </div>
    </div>
    <div class="form-group">
        <label for="Password">密碼</label>
        <div>
            <input type="password" id="Password" name="Password" class="form-control" required />
        </div>
    </div>
    <div class="form-group">
        <input type="submit" value="登入" class="btn btn-default" />
        <div class="text-danger">
            @ViewBag.Message
        </div>
    </div>
</form>

● Home/Login (POST)

接著繼續完成Login()的POST方法,當表單提交後,首先會撈出符合輸入帳號密碼的會員資料,如果是null的話代表帳密輸入不正確,會回傳原本的View並顯示錯誤訊息;如果不為null代表帳密符合,進行驗證授權後會轉至~/Member/Index的頁面,Code如下:

        [HttpPost]
        public ActionResult Login(string UserId, string Password)
        {
            //找出符合登入帳號與密碼的 Member資料
            var member = db.table_Member.Where(m => m.UserId == UserId && m.Password == Password).FirstOrDefault();
            if (member == null)
            {
                ViewBag.Message = "帳號or密碼錯誤,請重新確認登入";
                return View();
            }

            Session["Welcome"] = $"{member.Name} 您好";

            FormsAuthentication.RedirectFromLoginPage(UserId, true);

            return RedirectToAction("Index", "Member");
        }

● 小結

上述完成後可以先測試看看登入流程是否正常,可以利用註冊頁面自行加入新的帳密資料,或是從資料表已經有的帳密登入。如果登入成功會顯示如下圖錯誤:

因為我們還沒實作相關動作方法和檢視頁面呀~不過今天就先完成到這好了,講得比較粗略但相關知識應該前面的文章都有講到,如果有任何問題也歡迎留言討論唷~那就明天見啦~


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

尚未有邦友留言

立即登入留言