日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Mvc3(1)

發布時間:2023/12/9 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mvc3(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘錄于Pro ASP.NET MVC3 Framework一書:

一. Web Form的缺點

1. view state weight: ?? view state 中保存的數據在每次HTTP請求中來回傳遞,且包含的數據量可以達到很大,導致用戶響應時間比較慢,增加了帶寬要求

2.頁的生命周期相當復雜

3.html的訪問性更差 ? 服務器控件最終以純HTML形式呈現,但往往不是以WEB標準呈現的,導致不能很好的利用CSS,且服務器控件呈現生成不可預知、復雜的ID,導致用JS很難訪問到

4.緊密的架構不適合用unit testing

?

二、DI(dependency inject)依賴注入

減少組件的耦合度,用到的容器為Ninject

??? public interface IA
??? {
??????? void fun_A(String str);
??? }

??? public class A : IA
??? {
??????? public void fun_A(String str)
??????? {
??????????? Console.WriteLine("{0}", str);
??????? }
??? }

??? public interface IB
??? {
??????? void fun_B();
??? }

??? public class B : IB
??? {
??????? private IA ia;
??????? public B(IA iaa)
??????? {
??????????? ia = iaa;
??????? }
??????? public void fun_B()
??????? {
??????????? ia.fun_A("test in interface IA");
??????? }
??? }

??? public class C
??? {
??????? private IB ib;
??????? public C(IB ibb)
??????? {
??????????? ib = ibb;
??????? }
??????? public void GoTest()
??????? {
??????????? ib.fun_B();
??????? }
??? }

??? class Program
??? {
??????? static void Main(string[] args)
??????? {
??????????? IKernel kernel = new StandardKernel();
??????????? kernel.Bind<IB>().To<B>();
??????????? kernel.Bind<IA>().To<A>();
??????????? IB b = kernel.Get<IB>();
??????????? C cc = new C(b);
??????????? cc.GoTest();
??????????? Console.ReadKey();
??????? }
??? }

//類C 依賴于接口IB, 實現IB的類B又依賴于接口IA, ? 也可以說是:類C依賴于接口IB,接口IB又依賴于IA,這樣就形成了一條依賴鏈,用DI容器可以自動完成相互依賴的接口的實現類的實例的創建【面向接口編程】

//用DI容器后,它會自動去理清這條鏈,然后創建相應的實現類實例,并傳給相應的構造函數,【也叫構造函數注入】

//依賴注入有三種方式:A.Constructor Injection? B.Setter Injection???C.Interface Injection

?

三、Layout
如果不想引用母版頁,則必須@{Layout = null;}
如果沒有這樣指明,則默認為引用ViewStart.cshtml作為母版,而ViewStart.cshtml引用的是_Layout.cshtml,
所以沒有指明的情況下,則是引用_Layout.cshtml作為母版的。

四、Html.RenderPartial與Html.RenderAction

??//這兩個方法都是用來在界面上嵌入用戶控件的

? (1)Html.RenderPartial("LogOnUserControl");

??//LogOnUserControl是一個partial view名,也就是在這個view中定義一個用戶控件,這個view必須放在調用者同一目錄下,也可以放在View/Shared中。可以看出,這個方法是依賴于一個partial view的 ?

? (2)Html.RenderAction?????

? //從方法名上就可以看出這個方法依賴于Action【調用某個Action對應的View】,??例如:

? Html.RenderAction("Menu", "Nav");

? //Menu是Action名,此時會調用Menu對應的View,Nav是這個Action所在的Controller名

?

?

轉載于:https://www.cnblogs.com/notebook2011/archive/2012/12/03/2799613.html

總結

以上是生活随笔為你收集整理的Mvc3(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。