反思MVC中的模型

2021-09-17 05:20:30 字數 889 閱讀 8245

j​on galloway正在進行一項關於動態化asp.net的mvc 3框架的研究,該研究基於將編譯器作為服務的思想。與此同時,karsten januszewski也在尋求反序列化json的方案,以此來達到替代靜態模型的目的。

\通過mono編譯器以服務形式實現的動態模型

\ 雖然和微軟提供的編譯器即服務的方案還有兩個版本的距離(注:c#的最新版本為5.0,mono預設編譯器基於3.x版本特性實現),jon galloway已經著手在最新的mono編譯服務的基礎上開始了他的研究。mono編譯器的積極發展,同時也為繼承c# 5的非同步語言結構奠定了基礎。

\ mono.csharp.evaluator 是乙個基礎類。通過呼叫其中的run方法可以處理任何傳入的string物件。另外還有evaluate方法,該方法同樣接受乙個string型別的引數,隨後會處理並返回傳入表示式的運算結果。從這點上看,和動態語言執行時或是古老的vbscript中提供的api很相似。

\將jsonobjects作為乙個模型

\ karsten januszewski的研究則採用了截然不同的機制。他先利用wcf的json類,從服務層得到json格式的字串。然後再將字串轉化為json物件,這樣就形成了乙個基本的模型。這樣做的缺點就是沒有任何業務邏輯的表示:模型完全由純粹的資料構成。

\ 同其他mvc使用者一樣,karsten在研究中也遇到了一些常見的問題和精妙的解決方案。簡單來講,linq生成的匿名型別與mvc中使用的 runtimebinder型別不相容。也可歸納為「匿名型別與動態型別的不相容」。幸運的是現在已經找到了解決方案。方法很簡單,只需用乙個 jsonobject例項來替換掉linq表示式中的匿名型別即可。

\ ​查看英文原文:models in mvc

MVC 程式設計模型

mvc 是用於構建 web 應用程式的一種框架,使用 mvc model view controller 設計 mvc 模型通過三個邏輯層來定義 web 應用程式 模型 model 模型 model 是應用程式中用於處理應用程式資料邏輯的部分。通常模型物件在資料庫中訪問資料。view 檢視 view...

MVC模型繫結

一 理解模型繫結 模型繫結是http請求與c 方法之間的乙個橋梁,它根據 action 方法中的 model 型別建立 net 物件,並將 http 請求資料經過轉換賦給該物件。二 預設的模型繫結器 應用程式有多個繫結器,大多數的都是依賴與內建繫結器類 defaultmodelbinder,一般情況...

MVC 模型繫結

在webform,獲取提交表單的值一般都是request.form title 這樣的方式。在mvc中,提供了模型繫結機制。讓後台獲取表單或url中的引數變得更加簡單。你可以直接在引數中用字串,整型變數,實體或者是list 實體 的方式獲取表單提交的引數。引數中的這些東西都是與表單中的html控制項...