当前位置: 首页 > news >正文

做网站和做网页有啥区别/百度应用商店app

做网站和做网页有啥区别,百度应用商店app,上海企业网站的建设,做空比特币的网站大家知道ASP.NET MVC正式发布以来,受到开发人员的疯狂追捧,园子里MVC系列文章更是层出不穷,套用ASP.NET开发人员需要学习ASP.NET MVC么(英文地址)一文所说的: WebForms是个谎言,它是一个被种种谎言和欺骗所包围着的抽象…

     大家知道ASP.NET MVC正式发布以来,受到开发人员的疯狂追捧,园子里MVC系列文章更是层出不穷,套用ASP.NET开发人员需要学习ASP.NET MVC么(英文地址)一文所说的:

    WebForms是个谎言,它是一个被种种谎言和欺骗所包围着的抽象机制。你对WebForms所做的一切都与Web无关-它帮你做了本该你自己做的事。
    朋友们,这可是件大事(至少对我来说):你工作在谎言中。Web是“无”状态的,它依赖一种叫做HTML的东西,并使用另一种叫做HTTP的东西通过电缆将HTML发来发去-你需要了解它、热爱它并在骨子里感受它。

 

ASP.NET MVC不是一个“束缚你手脚”的框架,也不是一个“ASP.NET入门”框架,你可以完全控制所有的东西。在Web的世界里,UI还没有标准化到可以使用框架来控制,并以一种“标准”的方式来生成。

 

    这些都充分说明了使用MVC框架进行Web开发的必要性,至于更多的MVC和WebForms的特性,可以看看我无意中找到的一篇文章Asp.NET MVC and Asp.NET WebForms Features,至于更多关于这两者选择性问题我持保留意见,只能说合适的才是最好的,有一点我想事先说明一下,选择MVC能进行更多的控制但同时也意味着需要编写更多的代码(我是比较乐意的)。

     最近在一个项目里使用了MVC开发,所以就阅读了一下MVC源码,真的非常棒,可扩展性非常强,可以说处处都可以扩展,Simone Chiaretta有篇文章被翻译了:【翻译】ASP.NET MVC中你必须知道的13个扩展点。

    本文我将介绍扩展IControllerFactory的一个应用,通过扩展DefaultControllerFactory来实现Controller. ActionInvoker的替换,然后扩展IActionInvoker实现返回不同的ViewResult, 本文只实现一些简单的功能,仅当抛砖引玉。阅读之前你需要熟悉asp.net mvc具体流程,asp.net mvc流程初探虽然只是“初探”,但让你粗略了解asp.net mvc流程已经足够。

    首先我们扩展IControllerFactory,让它替换ActionInvoker为我们自己扩展的TestControllerActionInvoker:

   

public class TestControllerFactory : DefaultControllerFactory
{
    
    
protected override IController GetControllerInstance(Type controllerType)
    {
        IController iController 
= base.GetControllerInstance(controllerType);//如果用到了依赖注入,可从注入容器获取

        
if (typeof(Controller).IsAssignableFrom(controllerType))
        {
            Controller controller 
= iController as Controller;

            
if (controller != null)
                controller.ActionInvoker 
= new TestControllerActionInvoker();//同样可以从注入容器获取

            
return iController;
        }
        
return iController;
    }
}

 

    然后扩展IActionInvoker:

public class TestControllerActionInvoker : ControllerActionInvoker
{
    
    
protected override ActionResult CreateActionResult(ControllerContext controllerContext, ActionDescriptor actionDescriptor, object actionReturnValue)
    {
        
if (actionReturnValue == null)
        {            
            
return new XXXResult();//可以处理自己的ViewResult逻辑
        }

        
if (typeof(ActionResult).IsAssignableFrom(actionReturnValue.GetType()))
            
return actionReturnValue as ActionResult;

        controllerContext.Controller.ViewData.Model 
= actionReturnValue;

        
//可以根据返回的类型返回进行相应的ViewResult
        return new TTTResult { ViewData = controllerContext.Controller.ViewData, TempData = controllerContext.Controller.TempData };        
    }
}

 

    这里只是简单的对IActionInvoker的管线中的Action方法执行后的返回值进行处理,当然IActionInvoker能扩展的地方非常多,这样的好处是你在具体的Action里不必把过多的精力放在View这一层面,可维护性和可扩展性也就上了一个层次了。  

    最后,别忘记对ControllerBuilder进行设置ControllerFactory操作:

   

ControllerBuilder.Current.SetControllerFactory(new TestControllerFactory());

   

    好了本文就简单介绍到这,希望你能在自己的项目中根据自己的需要进行扩展,如果你项目中用到了依赖注入,需要对IControllerFactory进行扩展你可以参照MvcContrib和Ninject Controller Factory,至于ASP.NET MVC的IActionInvoker-ControllerActionInvoker主要任务是是查找Action、调用Action方法以及相关的Filter、执行得到ActionResult,可以说存在了大量的asp.net mvc执行逻辑,如果你需要改变这些约定,那就放开了去扩展吧,这里有个示例:NinjectActionInvoker I developed to allow injection of dependencies inside filters。

 

转载于:https://www.cnblogs.com/DeanMe/archive/2009/06/26/1511544.html

http://www.jmfq.cn/news/4952233.html

相关文章:

  • 眉山网站制作/山西seo
  • 网站建设 考题/廊坊网站设计
  • 网页设计教程详细步骤/北京网站sem、seo
  • 泰州企业模板建站/企业培训权威机构
  • 网站设计者/成都网站制作
  • 移动服务器建设的电影网站/深圳seo排名哪家好
  • 福州做网站的公司/广州最新疫情通报
  • 广州网站优化网站建设/网站收录软件
  • 五星花园网站建设兼职/哈尔滨seo推广
  • 个人制作网站的流程/发布软文的平台
  • 郑州专业建站报价/信息流投放
  • 网站上线测试/重庆森林经典台词罐头
  • 网站制作理念/谷歌seo推广服务
  • wordpress支付平台/惠州seo外包服务
  • 葫芦岛市城乡建设局网站/温州企业网站排名优化
  • 什么网站程序做资料库/seo网站优化知识
  • 南昌做网站开发的公司/产品如何推广市场
  • 江苏城乡建设厅官方网站/网站网络排名优化方法
  • 做网站的费用记哪个科目/百度手机助手app官方下载
  • 换模板搭建网站怎么做/信息流广告投放公司
  • 现在网络公司做网站是用cms还是新版编程_/站长论坛
  • 用本机做网站浏览/网站优化公司大家好
  • 外汇网站建设制作/营销策划方案ppt模板
  • 正规的饰品行业网站开发/杭州seo网站推广
  • 江苏专业网站推广公司哪家好/外贸营销型网站设计
  • 白云区做网站公司/推广自己产品的文案
  • 南京网站制作价格/西安全网优化
  • 武汉网站推优化公司/百度收录排名查询
  • app介绍类网站模板/郑州官网网站推广优化
  • 多多进宝怎么推广赚钱/seo视频网页入口网站推广