2019/0515/RWD Utility+Card&MVC ViewModel+CRUD(RD)
#RWD Utility
上次講的是排版方式 flexbox bs4
這次繼續講通用Utility類別 字型 字體 顏色 背景
Bs4比bs3顏色更多
全幅背景圖??
##Utility顏色
###Keyword 文字
text- …
###Keyword 背景色
bg- …
###Keyword 複習
p ? padding
mb ? marginbotton
bs3沒有通用屬性要自己下css
transparent 透明
###RWD/11Utility_Color.html

##Utility格式
keyword
<h1-6>
<small>
<pre>
<code>
<kbd>
沒套的時候其實只是有含意的區位沒有樣式
###RWD/12Utility_Text.html


##格式對齊
###justify自動切齊 ( 字跟字寬度自動平均
###badge 徽章
###以斷點做文字對齊 sm md lg xs(太小不用寫)


###truncate 隱藏多於的資料 (( sql 看過 則為刪除資料不留log
###相對
###絕對
### Overflow = break ? 卷軸
其實以上bsclass css裡面就是overflow hidden
還有很多例如
去除底線
開頭字變大寫 capitalize 其實都是 css style 只是在稍加更改
### /RWD/13Utility_Text2.html

##邊框 border
Rem 從根 window 繼承
### /RWD/14Utility_Borders.html

## Utility總結 比較牽涉到版型設計頂多牽涉到UX跟功能較無關
Display 顯示
Flex 對齊
color顏色
border邊框
剩下的老師沒講需要在看docs
##BS 對表格影響
table
caption
tfoot
thead
tr td
原本都有自己的位置定位
但放入bs就會整個布局都不一樣
有很多種bs樣式要去docs看比較清楚
然後連hover都會有改變
#改核心不要直接改
最好的方式是 複製起來然後自己弄個自己網站的css後置程式碼 然後改顏色等等 然後?只要link位置比原bs.css引入得更後面 就會吃越後面link那種

Table有沒有響應式呢? table-responsive-md
### 15Table.html

##Card ( 有階層性
Pano? Bs3 改成
Card bs4
Components 組件
Content 內容
###階層性
Card-header/body/footer
接著用用flexbox去排版 col-md-4 …
Columns 列
Row 行
如果要擺圖片?
首先圖片先給響應式class card-img
1擺在卡片最上方
然後跟header/body/footer同階層
接著又分左側右側
2圖片左邊文字右邊 ( 卡片系統無法 ???
所以要利用網格系統 ( 會很多層 ( 好像是 卡片系統無法跟網格系統互相 扛拜 所以需要用 div下網格系統在 包住 卡片系統
還可以扛拜很多東西,老師說自己看 …
### /RWD/16Card.html

###Card內容
Card-text/title/subtitle
Card-link
###List ul li
List-group
List-group-item
List-group-flush
也可以直接放到gridsystem ??
然後下head 可以融合看起來像一體設計
就是大小顏色樣式寫好了 可以共存的style
一樣去官網看
### /RWD/16Card.html ( 同一個檔案下半段

##卡片系統搭配其他系統只要扛拜出來即可
##補充
預設是gridsystem https://getbootstrap.com/docs/4.0/layout/grid/
除了content 也可以用 row 或 card-group
總之card可以跟其他組件扛拜 要舉一反三十六
### /RWD/16Card.html ( 補充扛拜系統程式碼

###/RWD/16Card.html
#MVC
Mvc 利用 tD(tDept) tE(tEmp)一個 model 只能配一個 view
那怎讓兩個Model配同一個view??

2種方式
ViewModel ( 為了一個view讀兩個model特地去做一個新的model出來 跟MVVM是兩碼子是
patidView
ViewModel
先介紹第一種 首先建立基底MODEL 接著建立一個新資料夾取名叫ViewModel藉此區分 ( 也可以放在原資料夾 接著在ViewModel資料夾中新增一個CVM.CS 要將兩個Model合併在這一個class中 記得要引入另外一個models才可以使用物件 using _05ViewModel.Models;
首先使用泛型list塞 tDepartment與tEmployee 這兩個class建立 CVM這個model
接著就要去編輯Controller 記得要把基底,model與原本的model都要進來 但是還是要將 dbEmployeeEntities 建立物件 接著藉由CVM這個類別建立新物件 將資料塞進去 直接將 CVM這個物件return回view
然後不用範本直接空view
打開只會看到layout
接著用razor引入 model資料 @model _05ViewModel.ViewModel.CVM
就開始用BS gridsystem排版左邊引入tDepartment 類別資料右邊tEmployee資料
此時已經把資料合併為CVM而且 讀出來了在這個頁面了
只要寫RAZOR 寫C#即可把資料做顯示
接著做塞選 點左側連結後後右側顯示塞選後的內容
接著要去修改controller傳過去的資料庫model內容要改成查詢式where
即可
###資料庫

###model

###/05ViewModel/Models/tDepartment.cs
### 05ViewModel/Models/tEmployee.cs
###ViewModel
###05ViewModel/ViewModel/CVM.cs
###/05ViewModel/Controllers/HomeController.cs
###/05ViewModel/Views/Home/Index.cshtml

###老師步驟
接著做新增功能
一個是get 一個是 post 所以有兩個 action 因為要把資料帶到view給下拉式選單用 所以get裡面要傳tD
接著處理 POST 把接收到的前端資料寫到參數傳入ACTION 在傳入資料庫 儲存
要RETURN到你當初編輯前的頁面所以要帶部門參數
接著新增CREATE檢視頁面 ( 一樣不用範本 一樣引入資料MODEL
簡單繫結 form
Bs畫表單 ( 還沒教先講
Keyword
Form-horizontal/group/comtrol
然後利用gridsystem排版
Label for
弄完一個按鈕後 複製四次 改繫結位置 與 顯示字 即可
最後 用一個 submit的按鈕 Bs排版 offset 空格
更改部門欄位改為下拉式 回圈顯示選項 ( 要動態的從資料庫顯示出來 ( 不要寫死 不然維護麻煩
到此新增功能完成
###/05ViewModel/Controllers/HomeController.cs
###05ViewModel/Views/Home/Create.cshtml

###老師步驟
#接著刪除功能 刪除後返回原來頁面
在view 寫 razor 用 actionlink 傳送 刪除的物件的id與指令
因為刪除沒有刪除自己的特別頁面所以可以從view寫回control
等等看程式碼
###/05ViewModel/Views/Home/Index.cshtml

###05ViewModel/Controllers/HomeController.cs
等老師最後程式碼與步驟 再一起貼 ???
#CRUD 接著做一次 MVC 新增修改刪除查詢 ( 細節觀念 也會交代
CRUD 新增修改刪除查詢 正統不講
create, read, update, and delete
修改跟新增其實很像
新增model 名稱其實可以跟資料庫不一樣是脫鉤的可以自取
Db first 有db 在建立model
建立好後建置編譯
接著 進入 model 確定 資料內容
首先 displayname ( 可以在view改或在model就做好
且要先 using componentmodel 這個 packge class
以MVC宗旨 ( 商業邏輯必須寫在 Model ( 如何寫呢?
應用程式端 或 model (擴充功能 跟類別很像castan) (下個單元會講 ?
Model好後右建新增control
Using model近來使用
使用模組物件 建立一個資料庫物件
利用return 將資料 db.tproduct.tolist() 到 index 這個 action
然後產生view用範本
model => model.fName
Lambda
###model

###/06CRUD/Models/tProduct.cs
###06CRUD/Controllers/HomeController.cs
###/06CRUD/Views/Home/Index.cshtml
#接著講刪除但還是用之前的做法 ( 出現確認視窗刪除 ( 刪除資料檔案與資料庫欄位資料
正式的刪除頁面進行刪除
刪除除了資料庫內的檔案路徑要刪掉外
還要刪除實體檔案資料
首先在action 建立 delete
建造一個變數塞查詢式
接著把路徑資料抓出來
System.IO ( 只要跟實際檔案上傳下載刪除有關的類別
方法為 Delete
Server.MapPath (邏輯路徑跟實體路徑轉換)
刪除檔案後
然後將欄位資料位置給刪除
儲存
傳送至index
回到view用actionlink 傳送 確認刪除的alert
###/06CRUD/Controllers/HomeController.cs
###/06CRUD/Views/Home/Index.cshtml
#CRUD剩下CU 下次繼續 ( 重點為空值??
Last updated
Was this helpful?
