日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

.Net教程之基于ASP.NET2.0的非HttpModule山寨版MVC框架的實現(xiàn)_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:淺析ASP.NET LinkButton組件編程
ASP.NET LinkButton組件編程是什么概念呢?首先讓我們來看看: 在ASP.NET的WebForm組件中的LinkButton組件也是一個服務(wù)器端的組件,這個組件有點類似于HTML中的﹤A﹥標(biāo)識符。它的主要作用是就是在ASP.NET頁面中顯示一個超鏈接。當(dāng)這個鏈接被按動的時候,頁面

在ASP.Net MVC框架中是使用地址攔截的,雖然很好用,但是裝起來太大了,配置也麻煩。本文通過代碼實踐,在ASP.Net2.0框架下實現(xiàn)一套簡易的MVC框架。MVC框架難于構(gòu)建的地方在于Controller與View的分離以及分離后數(shù)據(jù)可以方便地傳輸。為了保持代碼的簡潔,將使用ashx文件作為Controller,用aspx頁面作為View。

講起來比較費勁,把項目文件放上來,而下面只作一個簡單的說明。項目是VS2008的項目,大小15K。

下載地址:DotNetMVC.rar

首先構(gòu)建一個Controller基類。

以下為引用的內(nèi)容:


/**
 * author : yurow
 *      
http://birdshover.cnblogs.com
 * description:
 *      
 * history : created by yurow 2009-9-20 7:30:04 
 
*/

using System.Web;
using System.Web.Services;

namespace DotNetMVC.MVC {
    
/// <summary>
    
/// 控制器
    
/// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
    
public abstract class Controller<T, K> : IHttpHandler {
        
/// <summary>
        
/// 當(dāng)前請求
        
/// </summary>
        protected MyRequest Request;
        
/// <summary>
        
/// 輸出
        
/// </summary>
        protected HttpResponse Response;
        
/// <summary>
        
/// 返回到View頁面的數(shù)據(jù)
        
/// </summary>
        protected MvcViewData<T, K> ViewData;
        
/// <summary>
        
/// 控制器名稱
        
/// </summary>
        private string controllerName;
        
/// <summary>
        
/// 控制器操作方法
        
/// </summary>
        public abstract void Action();
        
/// <summary>
        
/// 執(zhí)行請求
        
/// </summary>
        
/// <param name="context"></param>
        public void ProcessRequest(HttpContext context) {
            Request 
= context.Request;
            Response 
= context.Response;
            
//這里可以用反射的方式進行帶參數(shù)的操作,這里為了簡化,去掉了這部分
            
//MethodInfo method = this.GetType().GetMethod("Action", new Type[0]);
            
//if (method == null) {
            
//    throw new NotImplementedException("沒有實現(xiàn)!");
            
//}
            
//object data = method.Invoke(this, null) as object;

            ViewData 
= new MvcViewData<T, K>();
            Action();
            context.Items.Add(
"MvcViewData", ViewData);
            context.Server.Transfer(
"~/View/" + ControllerName + ".aspx"false);
        }
        
/// <summary>
        
/// 控制名稱,不設(shè)置默認為View頁面與控制器名稱同名
        
/// 比如,在Login.ashx請求中,默認調(diào)用View/Login.aspx的頁面作為顯示頁面。
        
/// 當(dāng)?shù)卿洺晒�,設(shè)置其為LoginOK,則會調(diào)用View/LoginOK.aspx
        
/// </summary>
        protected string ControllerName {
            
get {
                
if (string.IsNullOrEmpty(controllerName))
                    
return this.GetType().Name;
                
return controllerName;
            }
            
set {
                controllerName 
= value;
            }
        }

        
public bool IsReusable {
            
get {
                
return false;
            }
        }
    }
}

Controller在ProcessRequest方法中調(diào)用aspx頁面,里面設(shè)置了一個虛方法Action在具體的ashx文件中重載。

下面是Default.ashx.cs文件的寫法

以下為引用的內(nèi)容:


sing DotNetMVC.MVC;

namespace DotNetMVC {
    
/// <summary>
    
/// $codebehindclassname$ 的摘要說明
    
/// </summary>
    public class Default : Controller<stringstring> {
        
public override void Action() {

        }
    }
}

在Controller中,還有兩個重要的東西一個是傳遞給View數(shù)據(jù)用的,一個是顯示哪個View的(通過ControllerName這個屬性)

 

分享:淺談ASP.NET中如何使用AJAX中的方式
ASP.NET中使用AJAX中的方式之背景介紹 asp.net中使用php常用的jquery等類庫來實現(xiàn)ajax不是很容易。因為asp.net的機制已經(jīng)被封裝了,依靠內(nèi)部的viewstate,如果硬用js修改了控件的值,跟他的viewstate對不上,而這些控件又是不可修改的,將對程序造成安全性困

來源:模板無憂//所屬分類:.Net教程/更新時間:2009-10-03
相關(guān).Net教程