2021年4月30日 星期五

WPF聊天室应用(ASP.NET Core SignalR)

 

WPF聊天室应用(ASP.NET Core SignalR)


https://www.bilibili.com/video/BV1Q741187Si?p=2

https://www.bilibili.com/video/BV1UV411e75T?from=search&seid=6704082708608087525

https://www.bilibili.com/video/BV1yt4y1D7EX/?spm_id_from=autoNext


2021年2月18日 星期四

從 Controller 傳值到 View

 擷取自

https://dotblogs.com.tw/jasonyah/2013/10/12/aspnet-mvc-controller-send-data-to-view

[ASP.NET MVC] 天天 MVC 快樂笑 CC (二)–從 Controller 傳值到 View - 進房間 Say Hello
在上一篇我們聊到了 Controller 和 View 之間的關係,將 Controller 比喻成「房子」、View 比喻成「房間」,Controller 可以決定哪個門(Action)可以進去哪間房間(View),接著我們來看看如何從 Controller 把值傳到 View 裡面並顯示,甚至加上一些更進階的功能,這次我們也會請到建築師和室內設計師來為房子(Controller)和房間(View) 新增些功能,讓我們的網頁看起來更佳生動 ~

前言

上一篇我們聊到了 Controller 和 View 之間的關係,將 Controller 比喻成「房子」、View 比喻成「房間」,Controller 可以決定哪個門(Action)可以進去哪間房間(View),接著我們來看看如何從 Controller 把值傳到 View 裡面並顯示,甚至加上一些更進階的功能,這次我們也會請到建築師和室內設計師來為房子(Controller)和房間(View) 新增些功能,讓我們的網頁看起來更佳生動 ~

延用上一篇的專案,現在我希望在 Index 頁面顯示使用者的名稱,我們先修改 HomeController 的程式碼

修改 Controller 程式碼

public ActionResult Index(string name)
{
    return Content(name);
}

在前面的範例中我們是利用 Return View() 來顯示頁面,但這邊我們利用 return Content() 來返回一段純文字到頁面上,這有點像我們在寫 ASP.NET 常用的 Response.Write(),重新執行後輸入網址http://localhost:port/Home/Index?name=Jason ,看到的結果如下圖:

View3

等等!那我們原本 Index 的 View 呢?不是應該還有 <h2> 這個傢俱嗎?

我們先來回想一下前面說的房子和門的關係,一間房子能擁有許多不同的門。而其實每個門可能都擁有不同的功能,有些門打開則可以進入房間(return View()、return PartialView()),有些門打開可以拿到一些小紙條上面記錄了不同的資訊(return Content()、return Json()),甚至有些門打開是一面牆壁什麼也沒有(return null) … 等。

所以我們可以依照 return 的方法不同而得到不同的結果,建築師(程式設計師)在做每扇門之前就可以決定好每個門所擁有的功能了,這也符合我們前面在講 MVC 的觀念時提到的,Controller 只負責控制流程決定哪個 Action 該做哪些事情。

Controller4

  • 重點整理:
    1. Controller 中的 Action 會隨著 return 的方法不同而得到不一樣的結果(要返回頁面則可用 return View() 、想取得資料可用 return Json()  … 等)
    2. Controller 只負責決定程式的流程,哪些門(Action)可以做哪些事情

不過單純顯示資料這樣還不夠,有訪客到了帶了點禮物想進去房間裡放好,我們又該如何達到?

使用 ViewData、ViewBag 來傳遞資料

在開始之前我們先看篇文章來對這兩個物件有個初步的認識:

ViewData 和 ViewBag 有點像假如今天我們拿著東西想去 7-11 要求幫忙宅急便,7-11 通常會要你買一個 6X 元的紙盒子,才能幫你宅急便的符合。換句話說,如果想要把東西帶進去房間裡,那我們就必須使用特殊的盒子才行。

Controller5

重新改寫 Controller 的程式碼

public ActionResult Index(string name)
{
    ViewBag.say = "早安阿!";
    ViewData["name"] = name;
    return View();
}

接著我們只要到 Index 這個房間,將盒子放到裡面去就行了:

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

@ViewBag.say,@ViewData["name"]

重新執行,並進入 http://localhost:port/Home/Index?name=Jason 會得到下面結果:

View4

  • 重點整理
    1. ViewBag 和 ViewData 的名字是可以共用的,所以你如果使用 ViewData["name"] = "Jason" 後面又寫 ViewBag.name = "Yah" ,則最後使用到 key 值為 name 時資料就會變成 Yah。
    2. 要注意 key 值是唯一的不能重複,如果重複使用就會蓋過原本的資料。

總結

在 ASP.NET MVC 中提供了 ViewData 、ViewBag 等物件來當做傳遞資料的一種媒介,兩種物件能裝的資料無上限,而可以儲存的資料型態也沒有限定,可以放 string、int、陣列、List<T> … 等,在 View 使用時只要適當的轉型就可以得到對應的資料了。另外 Action 的回傳結果是千變萬化的,透過 return 不同的方法能得到不一樣的結果。

2021年2月12日 星期五

Response.StatusCode

 ASP.NET MVC 回傳 HTTP 400 Bad Request 並附加錯誤訊息

https://blog.darkthread.net/blog/aspnetmvc-return-http-400-with-result/


網頁開發人員應了解的 HTTP 狀態碼

https://blog.miniasp.com/post/2009/01/16/Web-developer-should-know-about-HTTP-Status-Code

表单提交:button input submit 的区别

 https://harttle.land/2015/08/03/form-submit.html

2021年1月7日 星期四

[ Windows Server ]如何使用 win-acme 申請 Let's Encrypt SSL 並安裝到 IIS

https://key.chtouch.com/ContentView.aspx?P=3539

 win-acme 軟體檔案

軟體版本:2.1.13.978

軟體語言:英文

軟體性質:免費

官方網站:按我前往 win-acme

軟體下載:按我下載

如何使用 win-acme 申請 Let's Encrypt SSL 並安裝到 IIS?

1.本次申請環境為 Windows Server 2019 Standard + IIS 10.0,將所下載的檔案解壓縮,便可得到如下圖的檔案。
[ Windows Server ]如何使用 win-acme 申請 Let's Encrypt SSL 並安裝到 IIS?  

2.使用系統管理員的身分開啟[ 命令提示字元 ],並輸入 wacs.exe 所在路徑。
[ Windows Server ]如何使用 win-acme 申請 Let's Encrypt SSL 並安裝到 IIS?

輸入 N 後,按[ Enter ]來建立憑證。

3.接下來,程式會掃描 IIS 內的站台,並列出站台序號及名稱。
[ Windows Server ]如何使用 win-acme 申請 Let's Encrypt SSL 並安裝到 IIS?

用戶可根據自己需求選擇要綁定的網域名稱,而這裡我是選擇 A 綁定所有。

4.選擇主要站台,這裡可以選擇 1,方便將後綴名為 chtouch.com 的站台一次綁定。
[ Windows Server ]如何使用 win-acme 申請 Let's Encrypt SSL 並安裝到 IIS?

5.接下來是必須閱讀及同意 Terms of service。
[ Windows Server ]如何使用 win-acme 申請 Let's Encrypt SSL 並安裝到 IIS?  

6.輸入電子郵件,這裡須注意的是電子郵件帳號前須有 comma - separated,例如 -test@gmail.com。(mail要先登入)
[ Windows Server ]如何使用 win-acme 申請 Let's Encrypt SSL 並安裝到 IIS?  

7.到這裡基本就完成所有申請與建立工作,而這個建立工作包含到期前的自動更新與自動新增到 IIS 要綁定的站台。
[ Windows Server ]如何使用 win-acme 申請 Let's Encrypt SSL 並安裝到 IIS?  

8.使用者需要將原本的 HTTP 站台,強制轉到 HTTPS,可以在站台內的 Web.config 檔案,新增一段如下的指示詞。
[ Windows Server ]如何使用 win-acme 申請 Let's Encrypt SSL 並安裝到 IIS?

9.最後,可以開啟網站測試新申請的 SSL 憑證。
[ Windows Server ]如何使用 win-acme 申請 Let's Encrypt SSL 並安裝到 IIS?


WPF聊天室应用(ASP.NET Core SignalR)

  WPF聊天室应用(ASP.NET Core SignalR) https://www.bilibili.com/video/BV1Q741187Si?p=2 https://www.bilibili.com/video/BV1UV411e75T?from=search&...