導航:首頁 > 編程語言 > js傳值給mvc

js傳值給mvc

發布時間:2024-10-22 01:06:36

『壹』 js常用設計模式(MVC、MVP、MVVM及其他設計模式)

一、MVC

MVC模式的意思是,軟體可以分成三個部分。

視圖(View):用戶界面。

控制器(Controller):業務邏輯

模型(Model):數據保存

各部分之間的通信方式如下。

View 傳送指令到 Controller

Controller 完成業務邏輯後,要求 Model 改變狀態

Model 將新的數據發送到 View,用戶得到反饋

所有通信都是單向的。

二、互動模式

接受用戶指令時,MVC 可以分成兩種方式。一種是通過 View 接受指令,傳遞給 Controller。

另一種是直接通過controller接受指令。

三、實例:Backbone

實際項目往往採用更靈活的方式,以 Backbone.js 為例。

1. 用戶可以向 View 發送指令(DOM 事件),再由 View 直接要求 Model 改變狀態。

2. 用戶也可以直接向 Controller 發送指令(改變 URL 觸發 hashChange 事件),再由 Controller 發送給 View。

3. Controller 非常薄,只起到路由的作用,而 View 非常厚,業務邏輯都部署在 View。所以,Backbone 索性取消了 Controller,只保留一個 Router(路由器) 。

四、MVP

MVP 模式將 Controller 改名為 Presenter,同時改變了通信方向。

1. 各部分之間的通信,都是雙向的。

2. View 與 Model 不發生聯系,都通過 Presenter 傳遞。

3. View 非常薄,不部署任何業務邏輯,稱為"被動視圖"(Passive View),即沒有任何主動性,而 Presenter非常厚,所有邏輯都部署在那裡。

五、MVVM

MVVM 模式將 Presenter 改名為 ViewModel,基本上與 MVP 模式完全一致。

唯一的區別是,它採用雙向綁定(data-binding):View的變動,自動反映在 ViewModel,反之亦然。 Angular 和 Ember 都採用這種模式。

1、js工廠模式

說明:

在函數中定義對象,並定義對象的各種屬性,雖然屬性可以為方法,但是建議將屬性為方法的屬性定義到函數之外,這樣可以避免重復創建該方法。

引用該對象的時候,這里使用的是 var x = Parent()而不是 var x = new object(); 因為後者可能會出現很多問題(前者也成為工廠經典方式,後者稱之為混合工廠方式),不推薦使用new的方式使用該對象。

在函數的最後返回該對象。

不推薦使用這種方式創建對象,但應該了解。  

2、js構造函數模式

說明:

與工廠方式相比,使用構造函數方式創建對象無需在函數內部創建對象,而使用this指代,並而函數無需明確return。

同工廠模式一樣,雖然屬性的值可以為方法,仍建議將該方法定義在函數之外。

同樣的,不推薦使用這種方式創建對象,但仍需了解。

3、js原型模式

說明:

函數中不對屬性進行定義。

利用prototype屬性對屬性進行定義。

同樣的額,不推薦使用這樣的方式創建對象。

4、構造函數+原型的js混合模式(推薦)

說明:

該模式是指混合搭配使用構造函數和原型方式。

將所有的屬性,不是方法的定義在函數中(構造函數的方式),將所有屬性值為方法的利用prototype在函數之外定義(原型方式)。

推薦使用這樣的方式創建對象,這樣有好處。

5、構造函數+原型的動態原型模式(推薦)

說明:

動態原型方式可以理解為混合構造函數,原型方式的一個特例。

該模式中,屬性為方法的屬性直接在函數中進行了定義,但是因為

if(typeof Parent.lev == "undefined"){

          Parent.prototype.lev = function(){

            return this.name;

          }

   Parent.lev = true;

    } 

從而保證創建該對象的實例時,屬性的方法不會被重復的創建。

『貳』 如何通過js 把值存到session 或 cookie中

1、首先需要打開vscode,創建一個H5規范的頁面,在同級目錄放一個jquery源文件,並在頁面中引入jquery。

『叄』 怎樣用js調用mvc controller中的方法

var user=ViewData["User"] ="測試";不過ViewData["User"] ="測試";要寫在要傳遞的頁面的具體方法里 追問 ??ViewData["User"] 在Controllers 里已經賦值了,我要在js中獲取那個值,不是在js里給它賦值

『肆』 mvc母版頁引用相關js,子頁面怎麼弄出智能感應

.net中提供的母版頁大大的方便了製作網頁時候使得頁面共有元素統一化,給維護和修改提供了相當的便利。但是有一個讓人很惱火的缺點就是母版頁中才能有<head元素,使得很多情況下子頁面引用css或者js就不那麼方便。當然,你可以把css和js的引用全部放到母版頁中,但是這樣的做法會使得<head非常臃腫,是相當不理想的做法。這里介紹兩種簡單的方法,希望可以給碰到這個問題的朋友一點幫助,當然,如果您有更方便的做法,希望您可以告訴我,非常感謝呵呵。。。
第一種方法:使用<asp:ScriptManagerProxy元素
直接看代碼段:
<%-- 這種方法是利用了ScriptManagerProxy控制項中Scripts來引用js --%
<asp:ScriptManagerProxy ID="aa" runat="server"
<Scripts
<asp:ScriptReference Path="My97DatePicker/WdatePicker.js" /
</Scripts
</asp:ScriptManagerProxy
這里之所以要使用ScriptManagerProxy是因為使用母版頁時候要保證ScriptManager元素只有唯一一個,具體的就不多說了,MSDN查一下就明白了。
這種方法我個人覺得要稍微麻煩點(要敲多點代碼),而且只能引用js,css無效。
---------------------------------------------我是華麗的分割線-------------------------------------
第二種方法:使用<asp:ContentPlaceHolder元素
母版頁中代碼段:
<head runat="server"
<titleTechMan</title
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
<meta name="keywords" content="$頁面關鍵字$" /
<meta name="description" content="$頁面描述$" /
<asp:ContentPlaceHolder ID="cphHead" runat="server"</asp:ContentPlaceHolder</head
內容頁中代碼段:

閱讀全文

與js傳值給mvc相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接