当前位置:  编程技术>.net/c#/asp.net
本页文章导读:
    ▪将FreeTextBox做成控件添加到工具箱中的具体操作方法       今天学着用FreeTextBox,FreeTextBox将它的资源和程序都集成到DLL中去了,而且可以制作成控件让我们通过拖拽的方式使用。那面就说说如何将FreeTextBox做成控件了。 右键“工具箱(就是放控件的.........
    ▪关于Asp.net页面Page_Load被执行两次的问题分享       在写aspx的时候,不注意把AutoEventWireup="false"去掉,你可能会死得很难看, Page_load部分会在一次页面加载的时候执行两次哦!千万注意不要去掉aspx中的 AutoEventWireup="false"设置。 <%@ Page languag.........
    ▪ASP.NET MVC 从IHttp到页面输出的实例代码       代码如下:MVCHandler : IHttpHandlervoid IHttpHandler.ProcessRequest(HttpContext httpContext){    this.ProcessRequest(httpContext);} protected virtual void ProcessRequest(HttpContext httpContext){    HttpContextBase base2 = new HttpContextW.........

[1]将FreeTextBox做成控件添加到工具箱中的具体操作方法
    来源: 互联网  发布时间: 2013-11-30

今天学着用FreeTextBox,FreeTextBox将它的资源和程序都集成到DLL中去了,而且可以制作成控件让我们通过拖拽的方式使用。那面就说说如何将FreeTextBox做成控件了。

右键“工具箱(就是放控件的地方)”,然后选择“选择项”,这个过程可能有点慢,等将近1分钟的时间,然后再.net framework组件选项卡下点击“浏览”,然后找到我们"FreeTextBox.dll"的存放路径。添加进去就OK了。这时候我们回到“工具箱”就能找到我们添加的控件"FreeTextBox",工具箱中的控件时有分类的, 如果我们刚才在“登录”分类中添加的控件,那么现在也就去“登录”分类中查找。

将"FreeTextBox"空间托到aspx页面中,我们可以知道它的代码是

代码如下:

 <FTB:FreeTextBox ID="FreeTextBox1" runat="server"></FTB:FreeTextBox>

    
[2]关于Asp.net页面Page_Load被执行两次的问题分享
    来源: 互联网  发布时间: 2013-11-30

在写aspx的时候,不注意把AutoEventWireup="false"去掉,你可能会死得很难看,

Page_load部分会在一次页面加载的时候执行两次哦!千万注意不要去掉aspx中的

AutoEventWireup="false"设置。

<%@ Page language="c#" Codebehind="ShowSimpleFactory.aspx.cs" AutoEventWireup="false" Inherits="test.DesignPatternTest.ShowSimpleFactory" %>

 

当你将这个属性设置为true时,Asp.Net将页面的生命周期事件与一些特殊的方法进行关联,比如将你的Page_Load方法直接关联到页面生命周期的OnPageLoad事件。如果你将这个属性设置为false,那么这种自动的关联将不存在,你需要自己设置OnPageLoad事件的处理程序。

一般你将这个属性设置为false后,你可以获取少许的性能提升。

Microsoft 建议始终将 AutoEventWireup 设置为 FALSE。


    
[3]ASP.NET MVC 从IHttp到页面输出的实例代码
    来源: 互联网  发布时间: 2013-11-30

代码如下:

MVCHandler : IHttpHandler
void IHttpHandler.ProcessRequest(HttpContext httpContext)
{
    this.ProcessRequest(httpContext);
}

protected virtual void ProcessRequest(HttpContext httpContext)
{
    HttpContextBase base2 = new HttpContextWrapper(httpContext);
    this.ProcessRequest(base2);
}

protected internal virtual void ProcessRequest(HttpContextBase httpContext)
{
    IController controller;
    IControllerFactory factory;
    this.ProcessRequestInit(httpContext, out controller, out factory);
    try
    {
        controller.Execute(this.RequestContext);
    }
    finally
    {
        factory.ReleaseController(controller);
    }
}       

代码如下:

Controller : ControllerBase : IController
void IController.Execute(RequestContext requestContext)  //------>Controller
{
    this.Execute(requestContext);
}

protected virtual void Execute(RequestContext requestContext)   //------>ControllerBase
{
    if (requestContext == null)
    {
        throw new ArgumentNullException("requestContext");
    }
    if (requestContext.HttpContext == null)
    {
        throw new ArgumentException(MvcResources.ControllerBase_CannotExecuteWithNullHttpContext, "requestContext");
    }
    this.VerifyExecuteCalledOnce();
    this.Initialize(requestContext);
    using (ScopeStorage.CreateTransientScope())
    {
        this.ExecuteCore();
    }
}

protected override void ExecuteCore()   //------>Controller
{
    this.PossiblyLoadTempData();
    try
    {
        string requiredString = this.RouteData.GetRequiredString("action");
        if (!this.ActionInvoker.InvokeAction(base.ControllerContext, requiredString))   //public IActionInvoker ActionInvoker { get; set; }
        {
            this.HandleUnknownAction(requiredString);
        }
    }
    finally
    {
        this.PossiblySaveTempData();
    }
}

代码如下:

ControllerActionInvoker : IActionInvoker
public virtual bool InvokeAction(ControllerContext controllerContext, string actionName)
{
    if (controllerContext == null)
    {
        throw new ArgumentNullException("controllerContext");
    }
    if (string.IsNullOrEmpty(actionName))
    {
        throw new ArgumentException(MvcResources.Common_NullOrEmpty, "actionName");
    }
    ControllerDescriptor controllerDescriptor = this.GetControllerDescriptor(controllerContext);
    ActionDescriptor actionDescriptor = this.FindAction(controllerContext, controllerDescriptor, actionName);
    if (actionDescriptor == null)
    {
        return false;
    }
    FilterInfo filters = this.GetFilters(controllerContext, actionDescriptor);
    try
    {
        AuthorizationContext context = this.InvokeAuthorizationFilters(controllerContext, filters.AuthorizationFilters, actionDescriptor);
        if (context.Result != null)
        {
            this.InvokeActionResult(controllerContext, context.Result);
        }
        else
        {
            if (controllerContext.Controller.ValidateRequest)
            {
                ValidateRequest(controllerContext);
            }
            IDictionary<string, object> parameterValues = this.GetParameterValues(controllerContext, actionDescriptor);
            ActionExecutedContext context2 = this.InvokeActionMethodWithFilters(controllerContext, filters.ActionFilters, actionDescriptor, parameterValues);
            this.InvokeActionResultWithFilters(controllerContext, filters.ResultFilters, context2.Result);
        }
    }
    catch (ThreadAbortException)
    {
        throw;
    }
    catch (Exception exception)
    {
        ExceptionContext context3 = this.InvokeExceptionFilters(controllerContext, filters.ExceptionFilters, exception);
        if (!context3.ExceptionHandled)
        {
            throw;
        }
        this.InvokeActionResult(controllerContext, context3.Result);
    }
    return true;
}

protected virtual void InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
{
    actionResult.ExecuteResult(controllerContext);
}

代码如下:

ActionResult
public override void ExecuteResult(ControllerContext context)
{
    if (context == null)
    {
        throw new ArgumentNullException("context");
    }
    if (string.IsNullOrEmpty(this.ViewName))
    {
        this.ViewName = context.RouteData.GetRequiredString("action");
    }
    ViewEngineResult result = null;
    if (this.View == null)
    {
        result = this.FindView(context);   //ViewEngineResult
        this.View = result.View;    //IView接口   
    }
    TextWriter output = context.HttpContext.Response.Output;
    ViewContext viewContext = new ViewContext(context, this.View, this.ViewData, this.TempData, output);
    this.View.Render(viewContext, output);
    if (result != null)
    {
        result.ViewEngine.ReleaseView(context, this.View);
    }
}

    
最新技术文章:
▪C#通过IComparable实现ListT.sort()排序
▪C#实现对Json字符串处理实例
▪Winform实现抓取web页面内容的方法
▪Winform实现将网页生成图片的方法
▪C#控制台程序中处理2个关闭事件的代码实例
▪WinForm实现同时让两个窗体有激活效果的特效...
▪WinForm实现拦截窗体上各个部位的点击特效实...
▪用C#的params关键字实现方法形参个数可变示例
▪C#判断某程序是否运行的方法
▪C#验证码识别基础方法实例分析
▪C#通过WIN32 API实现嵌入程序窗体
▪C#实现获取鼠标句柄的方法
▪C#事件处理和委托event delegate实例简述
▪C#获取程序文件相关信息的方法
▪C#中的除法运算符与VB.NET中的除法运算符
▪ASP.NET MVC 5使用X.PagedList.Mvc进行分页教程(PagedLi...
▪Base64编码解码原理及C#编程实例
▪C#实现的优酷真实视频地址解析功能(2014新算...
▪C#和SQL实现的字符串相似度计算代码分享
▪C#使用Word中的内置对话框实例
▪C#反射之基础应用实例总结
▪C#生成单页静态页简单实例
▪C#实现SMTP邮件发送程序实例
▪C#实现随鼠标移动窗体实例
▪C#使用GDI+创建缩略图实例
▪C#实现通过模板自动创建Word文档的方法
▪C#中Response.Write常见问题汇总
▪C#中多态、重载、重写区别分析
▪WinFrom中label背景透明的实现方法
▪C#中out保留字用法实例分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3