長久以來搞不懂 ASP.NET MVC 在玩什麼把戲
雖然知道 MVC 是一個設計模式
將 Model View Controller 分離 已達成 易於擴充及維護的目的
理論歸理論 但是實際建立一個 ASP.NET MVC 專案之後 卻發現啥都不會用
而且綁手綁腳 隨便玩弄一下就報錯了 也不知哪裡有錯
更慘的是正體中文僅存的 MVC 書 是2.0的 還絕版了
英文...算了吧
這時神之音告訴了我一句話
try to remember some of the basics of web server
The Boss表示:Snake, try to remember some of the basics of CQC
晴天霹靂 豁然開朗 そうが なるほど
雖然早就知道 ASP.NET 的控制項是 微軟的陰謀
但是仍然不知不覺中了他的毒
雖然給你相似的操作經驗 讓寫網頁貌似在寫視窗
但是實際上網頁根本跟視窗的運作相悖甚遠
client 丟出 request 給 server
server 返回 response 給 client
記住這兩句箴言後 就可以接下去來場真正的挑戰了
喜新厭舊 所以選 MVC 4
避免挫折 選 Internet Application 會有預設的範例頁面
哪尼?! header 還藏有 響應式設計
執行起來果然比之前好看 而且會員登錄註冊啥的都有 只是不知道他怎麼辦到的
接下來 不要好高騖遠 先從最簡單最廢的 按按鈕 演算 求值 的開始玩
hollow words 老梗就免了 這裡玩個 算 BMI 的 小工具
如果是 ASP.NET 的話 拉控制項 估狗 BMI 算式 到完成 熟練的話不需 1 分鐘 像這樣...
如果都不要用控制項呢?用音曝的話辦得到嗎?
打娘胎到現在都在拉控制項的話 現在就遇到第一個大挑戰
最後可能弄個像這樣的
有血輪眼的朋友們想必一眼就看破我的花招
<form id="form1" runat="server">
這個也是控制項呀 唬誰 -.-
沒錯 在 ASP.NET 的世界裡 很難不用控制項 去做事
而且也沒必要這麼做 畢竟 ASP.NET 控制項 活了這麼久 開發了無數系統 他還是有他美好的地方及價值
不必為了摘一朵花 越過了整個青康藏高原
我想料理靠的是廚技而非廚具
回歸正題 上面的例子不是說嘴酸的
重點在於 沒有控制項的時候 該怎麼做
回到MVC 在 HomeController 之中 有3個 ActionResult
分別對應網站的三個 View (頁面)
現在依樣畫葫蘆 增加一個名為 testBMI 的 ActionResult
光有 ActionResult 還沒有用 必須要有對應的 View 也就是真正用來顯示的頁面
對 ActionResult 的名稱右鍵 add View
跳出一堆選項 這裡先不管 選擇 /Shared/_Layout.cshtml 當主版頁面 讓頁面有相同風格
他就自動生了個 /Views/Home/testBMI.cshtml 現在就能執行了
@ViewBag.Message表示:testBMI yooooooooooo~
然後就是乾坤大挪移 把 HTML 搬過來
@Html.TextBox 是 MVC 的 HtmlHelper 先把他當作替代 控制項 的東東就好了
@ViewData 則可以記住東西 有點像 viewstate
這時再加入一個同名的 ActionResult 並接參數 FormCollection Form
並註明屬性(attribute) [HttpPost]
這表示當這個頁面被 Post 的時候 會進入這個方法之中
而 Request.Form 則會被 參數 Form 所接住
偵錯就能看到 當輸入值 按下"算" 之後就會進入中斷點
最後的 Model 反而是最簡單的 搬過來變成類別就好了
Jerry大大 表示:Model要肥,Controller要瘦,View要笨
但是很抱歉這個例子太蠢 Model 只有幾行ˊ_>ˋ
Post 的方法最後長這樣
最後就玩弄吧 沒什麼好說 標準工程師身材 -.-
以上
您的文章真是有獨特的風格,好愛看阿XD
回覆刪除多謝讚賞
刪除