2019/0426/Asp.Net_MVC增刪修實作(補修)&bootstrap – gridsystem– 網格系統&第六次專題報告&全國技能競賽網頁設計

Asp.Net_MVC 增刪修實作(補修)

接續上一次的增刪修裡面的修

管理系統通常就是增刪修

刪除之前只是做簡單的前端提醒刪除確定

也可以像是新增確定頁面一樣做一個刪除確定頁面confirm(確定)

可以去比較web form寫法跟MVC寫法

以下先寫編輯

要寫一個功能一定有一個控制器與動作不一定有視圖(顯示

多載 同樣方法動作名稱但不同參數

首先編輯

先有轉換表單視圖(顯示動作

(且要把產品編號值傳進編輯確定表單(用url傳值

再藉由新增確定表單接產品編號值傳進視圖做顯示

在右鍵動作名稱用精靈新增視圖(到時會講手刻

此時編譯dll檔案 (是因為View裡面是Razor如果要顯示一定要編譯

經過編修動態連結執行(瀏覽器檢視)

然後title是放在_layout

因為標題是動態的跟隨頁面變動動的所以特別有一頁來整理title

此時的視圖layout程式碼

此時來修改視圖form抓產品編號值利用@URLhelper? ( 最上面 model …

裡面利用了很多Razor (html混後端語言)還有helper

裡面編修一些範本以外的功能

像是說如果編輯者沒有上傳編輯圖片必須顯示原圖片

或是將@helper form 接值 改為html方式接值

現階段的

控制器Edit動作程式碼

現階段的Edit視圖程式碼

接著在新增httppost回傳資料庫儲存動作

且是多載同動作名旦不同參數的動作

視圖內的htmltagname取名跟控制器內動作的參數name相同時

就會產生簡單繫結讓參數有辦法傳至控制器的動作內使用

此時編修控制器edit回傳資料庫動作

鑄造物件與變數並用方法操控物件與變數

邏輯:

如果有新增檔案上傳新增檔案沒有的話傳回原來的檔案

且要注意資料庫內的檔名與伺服器內檔案位置的差別

執行錯誤必須要從index去瀏覽如果直接從edit會因為沒參數報錯

此時的edit控制器程式碼

此時的edit視圖程式碼

所以要有兩個Action

Action name 可以自己取

為什麼編譯會快因為第一次執行時都必須要編譯但做完鏈結後就會很快

而直譯則是每次每行逐一翻譯

[HttpPost]方法類似webform的postback

最後有一個控制器六個動作三個視圖一個布局一個模型

步驟

//00-1 利用Entity Framework建立Model(DB First)

//00-1-1 建立dbProduct.mdb資料庫Model

// 在Models上按右鍵,選擇加入,新增項目,資料,ADO.NET實體資料模型,名稱輸入"dbProductModel",按新增

// 來自資料庫的EF Designer

// 連接dbProduct.mdf資料庫,連線名稱不修改,按下一步按鈕

// 選擇Entity Framework 6.x, 按下一步按鈕

// 資料表勾選"tProuct", 按完成鈕

// 若跳出詢問方法按確定鈕

//00-1-2 在專案上按右鍵,建置

//00-1-3 在tProduct.cs裡加入欄位名稱顯示(需using System.ComponentModel)

//00-1-4 在Controllers資料夾上按右鍵,加入,控制器,選擇 MVC5Controller-Empty

//00-1-5 指定控制器名稱為HomeController,並開啟HomeController

//00-1-6 using _MVC2.Models

//00-1-7 使用Entity建立DB物件

//00-2 製作Index頁面的顯示所有產品功能

//00-2-1 在HomeController裡撰寫Index的Action

//00-2-2 在public ActionResult Index()上按右鍵,新增檢視,建立Index View

//00-2-3 進行下列設定:

// View name:Index

// Template:List

// Model class:tProduct(MVC2.Models)

// Data context class:dbProductEntities(MVC2.Models)

// 勾選Use a layout pages

// 按下Add

//00-2-4 修改 _Layout.cshtml

//00-2-5 修改Index View,英文文字為中文

//00-2-6 修改圖片顯示處

//00-2-7 修改功能連結處 (id=>fId)

//00-3 製作刪除功能

//00-3-1 在HomeController裡撰寫Delete的Action

//00-4 製作Create頁面及新增產品功能

//00-4-1 在HomeController裡撰寫GET及POST的Create Action

//00-4-2 在public ActionResult Create()上按右鍵,新增檢視,建立Create View

//00-4-3 進行下列設定:

// View name:Create

// Template:Create

// Model class:tProduct(MVC2.Models)

// Data context class:dbProductEntities(MVC2.Models)

// 勾選Use a layout pages

// 按下Add

//00-4-4 修改Index View,英文文字為中文

//00-4-5 修改form的HTML Helper為一般的from

//00-4-6 修改圖片上傳處表單

//00-4-7 加入例外訊息顯示處

控制器程式碼

視圖index程式碼

視圖creat程式碼

視圖edit程式碼

布局程式碼

模型程式碼

總結

不一定每次都1-7會是動到哪裡就執行哪裡

畫面可以跟商業邏輯分離

設計跟程式會分離

到這告段落

到時先物件導向技術 然後再MVC一個個單元講

bootstrap – gridsystem– 網格系統

Flatbox 平面盒子?? Flexbox 彈性盒子

接續上次是分成四個解析度斷點

12個網格

Combine寫法:一種以上的classname用空格分隔

優先權一樣 (要看bs.css裡面誰寫上誰寫下

1920 xl 解析度 都在講寬不講高

網格系統中網頁其實就是一列一列一行一行的flatbox 彈性盒子flexbox??

所以易於排版

RWD程式碼

forDesktop <md以上>

如果容器與瀏覽器同寬

可以用container-flort

桌機跟行動裝置的斷點通常用md 中間值

大於md用一個

小於md堆疊起來

字不會併再一起?

Border畫div邊 是contend跟bord的pading距離

了解原理就有辦法更改核心

像是文字就有對齊方式 helper 輔助類別??

程式碼

forPad <md-sm>

程式碼

forPhone <比sm小不用寫斷點直接寫格數>

3版Row會自成row四版必須要上col ??所以後來直接刪掉標題的row

4版的Gridsystem用到css3的flexbox

程式碼

gridsystemalign 四版才有三沒有

Div是根據內容寬度高度所改變但是會繼承父輩

關係到col的垂直對齊方式align

純CSS對齊比較複雜

以下為BS4各種對齊效果

易於方便排版

4 4 4 三等份 其實不是真的全滿 只會每個都 33.3333….%

再BS4裡面要用no-gutters 沒有間隙

以上都可以有解析度斷點非常易於排版

且操控方式更豐富Order 排列方式 0-12 越大越優先排

為了響應式(大螢幕排序是那樣(小螢幕是這樣

甚至是Gridsystem巢狀?row裡面有row?

程式碼

下午

第六次專題報告 usecase

第三組

這樣才是正確的

然後大部分都是商業邏輯不太一樣所以產生的提問

一張圖只會有一個實體????好像是錯的

Usecase跟流程完全無關

階層問題 ( 要再多畫下階的usecase

Include 它絕對會用到它

Extend 它有時會用到有時不會它

generalization 它賦予它意義

第四組 要改的部分

感覺比較有問題的是

1. 表單或系統能不能當實體

2. 取消跟驗證要怎畫

題外話 零股補單

很多頁有case間的關係錯誤

配對部分會員加好友是正確的嗎?是

第五組

Case先後順序要確定 ( 有些是同時發生

Case 間的關係還要重新確認

Include 它絕對會用到它

Extend 它有時會用到有時不會它

generalization 它賦予它意義

全國技能競賽

圖片從資料夾插入

Last updated

Was this helpful?