2017/0506/Bs_FlexBox&Asp.Net_MVC_View+Razor@+Viewbag+helper

Bootstrap_Utilities+Display+HTMLHelper+404

#前端bootstrap

###前期提要gridsystem &

今天會講的為以下

Bs4相對於3的大特色

#Utilities bs4 獨立出來的通用類別

框架為了某個功能做特定class

通用 ( 每個標籤都適用

Bs 3 可以達到相同的功能 但分類不太一樣

Bs 3 有提供常用字型 icon 但Bs 4 就沒有

接著講Flexbox bs 3 完全沒有 只有 bs 4 有

Bs 4 庫可以分成三類 看需求去link ( 上一次有截圖官網有

全部 ui 等等…

Reboot 瀏覽器全部洗成類似

Grid 網格系統

Bs3 會套用字的顏色 ( 條背景色自動字的色也有對比色

但 bs4 要自己增加上去 ( 感覺也像 css 了

##display

有類別是 列印才看的到 或是 螢幕看的到 或是不同螢幕不同顯示方式

### 09Utility_Display.html

##CSS3 Flex Box 相對於 gridsystem是另外一種概念

CSS3之前沒有對於整個Window的垂直置中

必須要用一個固定大小的盒子下style line-height

行高超高跟box高度一樣就會跑到中間

flexbox

要啟用 flexbox 必須要將display顯示方式為 flex

Bs4只要將類別下 d –flex

然後將內容設置 p-2 ( padding 類別

###其實就是將箱子回歸最原始狀態再去設置

###Flex-column

###Flex-row-reverse

###…

以上都可以分斷點但這裡示範就先不使用

###自動調整內容Justify-content-(end/center/between)

Justify改斷點更有用 用 扛敗的 讓他擁有一堆覆合類別

以上為範例 還有更多 需要時再查

### 10Utility_Flex.html

(要看直接用程式碼看不然縱軸太長

###接續剛剛 item對齊 align-item-(start/center/end/baseline…)

Baseline 基底線?? 要每個內容物都有設定類別才會有共同的基底線

Content是指box最內側

###自身對齊 align-self-(start/center/end/baseline…)對齊flexbox的哪

###全部填滿 flexfill

###成長flex-grow-(1) 會被擠壓 ( w-100 固定 然後就會去擠壓

###壓縮flex-shrink-(1)

##Automargin 看父節點容器window自動對齊? mr-auto

Marginbotton = mb

Marginleft = ml

Marginright = mr

Margintop = mt

搭配 align item start end baseline …

### flexbox不像gridsystem超出容器就往下排列所以要用warp

### 排列order

###align Content

item調整跟Justify對齊的綜合通常用在換行

物件一多的時候

可以的話可以通通用content搭配對齊位置

star end baseline或between等等來用

用cross axis對齊

##補充觀念

P開頭的通常指padding boder到box的距離

M開頭的通常指margin boder到boder的距離

搭配除了上下左右還有 x橫軸y縱軸

Rem bs4才有 16px

核心讀法知道怎麼讀才知道怎麼改

#下午MVC 單元 View 上次講 C

等等會特別講 Razor 其實也是 c# 只是多了一些特性

上一次講c完全沒有view利用url傳資料到客戶端瀏覽器顯示

範例 夜市網站結合googlemap

首先建置簡單的m環境

靜態類別 就像 資料表 類別實體 屬性欄位

沒有繼承多載多型啥都沒有其時就是張資料表

Googlemap的使用可以地址也可以座標

有m無法直接v所以一定要有個c

開始key demo data

利用list泛型 那是什麼呢?

照理來說 string[10] 裡面就要放string , int[10]裡面就要放int

但list後面可以放任何檔案 list<model> 可以不用管他型態 甚至是類別也可以

還有一個叫arroylist 但更亂

詳細老師步驟在HomeContrler

View老師直接套用範本

### HomeController.cs

###Views/Home/Index.cshtml

###Models/NightMarket.cs

###步驟

##談view

如果view有牽涉到model

@model IEnumerable<_02View.Models.NightMarket>

I代表介面 enumerable 集合實體

只要是個集合就能用

@foreach (var item in Model)

來讀model直到讀完為止

接著來讀View範本模板

@Razor 的好處是可以在 View內寫c#

Title不同可以增加收尋引擎的排名

都是模板

可以用class套bootstrap

Htmlhelper

@Html.ActionLink("Create New", "Create")

404 http not found ( 等等會補充 錯誤頁面

@Html.DisplayNameFor(model => model.Name)

根據model去要欄位名稱

@Html.ActionLink("Edit", "Edit", new { id=item.Id }) |

@Html.ActionLink("Details", "Details", new { id=item.Id }) |

@Html.ActionLink("Delete", "Delete", new { id=item.Id })

上面有foreach迴圈跑很多次

根據點選的按鈕去新增onclick事件與傳值 但這次不錯新刪修

所以底下再加上夜市圖片與google地址

不知道怎麼下手的話

第一步先寫死

Html寫c#記得要@

放圖片很簡單只是改成動態檔名放圖

去googlemap url看邏輯發現前面固定指要改地址就可以有map

一樣寫死一個連結

然後在加上razor@做動態地址資料讀取

Class 改成像按鈕

確定結束在貼程式碼與步驟

###補充: 404

基於安全性與友善性

url如果要求錯出現404

mvc的web.config有兩個

打開專案的不是view的

在system.web

<CustonErrors mode=”On” defaultRedirect=”404.html” ></ CustonErrors>

自訂錯誤訊息打開

簡單加個404.html檔案

DefaultRedirect預設導入頁面

接著

##Razor撰寫習慣

註解方式@*哈哈哈哈哈哈哈*@

@{

裡都是

<p>html出現在任何區塊都可以但是razor要放進去就要 @Razor 且字跟Razor要空半格</p>

Razor範

XX 且字無法像在純HTML內讀字存在 ( 這個物件並不存在除非

@:這樣KEY就會原封不動顯示出來

}

<h2>@Math+@Eng+@Chi</h2>

純字串顯示

<h2>@(Math+Eng+Chi)</h2>

真正的運算

###RazorTest

##ViewBag

ViewBag.IsLogin=true

背包.袋子=物品

##Helper class

Html.ActionLink()

物件.方法(參數)

用來產生超連結

##Code-first類別寫完後轉為model在透過ADO進入資料庫

Mvc的model有個預設數性只要是類別名稱叫id的都會被設定為id

之後會特別講code-first

###models/Member.cs

###controllers/htmlhelpercontroller.cs

新增資料要有兩個action 一個是 get 一個是 post

第一個 get 只要回傳他一份編輯表單即可

重點是第二個 post

Class 當成參數傳過來

再來新增 creat的view ( 要用樣板一定要有model

接著利用razor與helper來寫view

爛達???? 講model時會講?

來與後端連接?

Helper有些裡面多載會有可以加上html屬性的參數且要用new{class={{form-control}

且c#裡面class是保留字前面必須加上@

把輸入的值在用 @ViewBag.Msg

叫回來顯示

且要用 @html.Raw處理htmltag

程式碼如下

###Views/HTMLHelper/Create.cshtml

### Controllers/HTMLHelperController.cs

### Models/Member.cs

View是獨立的 所以很簡單可以套上bootstrap

Webform編譯完還是html所以還是可以套但是要透過jq比較麻煩

以夜市那一頁來介紹從新弄一個action然後重排一張view

用網格系統排版

一樣如果不知道怎下迴圈先死一次再來改

##卡片系統thumbnail

bs4有cord 但bs3只有

###webform 可以用以下方式比較容易做到響應式

Datalist 有講過

Listitem 好像沒講過

Repeater 好像比較容易

###Views/Home/BootstrapIndex.cshtml

###Controllers/HomeController.cs

##最後老師邏輯步驟

Last updated

Was this helpful?