最近,這個微軟的mvc,是在圈內非常的火熱,貌似不會mvc,都有點丟人。
這個產品也有很多年了,從mvc3我就關注過,當時覺得不怎麼好,就沒有用,現在是mvc5了,也關注了下,覺得還是不是太好。也可能是我有點閣僚。
為什麼我就非常不喜歡呢?
有句話是這樣說的,愛屋及烏 。
而我是 惡其餘胥 。
razor 非常糟糕!
雖然是伺服器端的頁面解析 引擎,可能比webpage好多了,但是這個寫法,在html**裡面,嵌入了一些伺服器端**,感覺又回到了asp時代,jsp時代,不進反退。
我這麼說是因為,好多用mvc的同時是這樣寫的。
@
@if (viewdata["errmsg"].tostring() == "")
if (item["shzt"].tostring() == "0")
if (item["shzt"].tostring() == "2")
}@html.raw(shzt)
class="center">
@html.raw(item["zhzt"].tostring() == "1" ? "啟用中" : "禁用中")
class="center">
@item["zcsj"]
class="center">
@item["dlcs"]
}
}
是我這位同事寫的糟糕呢?還是大家都是這樣?
在razor檢視,也就是view檢視層面,出現大量後端程式的**邏輯,這個是前端程式完全看不懂的。
據說mvc要分層,要做到前後端分離。在檢視層,只進行資料的顯示,進行一些簡單的邏輯,而不是把所有的邏輯放在前端,在前端還進行大量的業務呼叫,可能還會出現對資料庫的操作呼叫。
如果是在檢視層,只寫普通的html**,以及一些擴充套件的html標籤,以及呼叫一些函式會怎樣呢?例如這樣……
collection="$"
var="vipuser"
index="index">
$td>
$td>
$td>
$td>
$td>
$td>
$td>
td>
tr>
eye:foreach>
tbody>
注:據說mvc6就可以避免出現大量的c#**了
解析流程特別糟糕!
在使用mvc時,如果需要訪問某個頁面,是不能訪問的,必須有乙個控制器,也就是,每個頁面對應乙個控制器,不然是無法訪問的。例如有個檢視是logon.cshtml,而頁面可能就是個簡單的登入框,不需要任何的後台**,此時,也不能直接進行訪問,必須通過乙個action才能訪問到。
我這樣說對麼?
如果我們能直接訪問到logon這個頁面就好了,例如: /sys/logon.aspx
自定義route解析規則
mvc的路由規則有點讓人很憤怒!
例如,我想讓所有不符合規則的請求都請求某個action或者某個頁面(不是404頁面),這個時候,我傻了,mvc本身不可以這樣,只能返回乙個404.
我們是不是可以讓所有不符合規則的請求,都請求我們自己定義的某個action呢?(設定404屬於mvc的體制範疇之外) 然後我們根據請求,來輸出內容。
可能在所有人都把mvc捧為香餑餑的時候,我來這麼一篇博文會讓他們很不高興,但我在開發中確實遇到了這樣的問題,這些問題不解決。
關於積累的一點看法
罈子裡有人討論小公司要不要積累框架的問題,有感而發,寫了點自己的看法,一家之言,歡迎拍磚。我在學習銷售的時候,有個理念對我震動很大。我們在各行各業都看到很多成功人士,大家都很羨慕他們,希望能像他們一樣成功,但是很少有人能做到。有人就分析,發現這些人比別人並不聰明多少,但基本上就有乙個特點,他們很善於...
關於積累的一點看法
我們在各行各業都看到很多成功人士,大家都很羨慕他們,希望能像他們一樣成功,但是很少有人能做到。有人就分析,發現這些人比別人並不聰明多少,但基本上就有乙個特點,他們很善於發揮時間的威力,在他們很年輕的時候,就每天堅持做一點對自己有益的積累,這個積累,可能是一次訓練,可能是一段 可能是乙個善舉,可能是乙...
關於積累的一點看法
這是vip那邊發表的一篇帖子,今天整理,發現可能有一點代表性,就再發在這裡,供各位同學參考。罈子裡有人討論小公司要不要積累框架的問題,有感而發,寫了點自己的看法,一家之言,歡迎拍磚。我在學習銷售的時候,有個理念對我震動很大。我們在各行各業都看到很多成功人士,大家都很羨慕他們,希望能像他們一樣成功,但...