技术开发 频道

细数ASP.NET MVC框架的7大优异功能

  2、URL路由,控制器响应请求

  和一般的ASP.NET应用程序不一样,ASP.NET MVC应用程序请求不是由磁盘上的文件,如.aspx文件产生的,而是由控制器直接产生的,下面是一个请求URL格式示例:

http://localhost:34299/<Controller>/<ActionMethodName>

 

  入站请求将会触发URL指定控制器的ActionMethod(行为方法),例如,请求将被路由到相应控制器的行为方法,该方法将负责呈现结果视图,为什么和开发人员有关系呢?下面就是答案:

   · 和REST风格的URL结构类似,这也导致用户可以轻易操作URL。

   · 使应用程序对搜索引擎友好,在现代Web应用程序开发中,这被认为是很重要的。

  是什么让这个URL驱动架构成为可能呢?秘密就在global.asax文件中,看看下面的代码:

public class MvcApplication : System.Web.HttpApplication
  {
          
public static void RegisterRoutes(RouteCollection routes)
          {
              routes.IgnoreRoute(
"{resource}.axd/{*pathInfo}");
  
              routes.MapRoute(
                  
"Default", // Route name
                  
"{controller}/{action}/{id}", // URL with parameters
                  
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
              );  
          }  
          protected void Application_Start()
          {
              AreaRegistration.RegisterAllAreas();  
              RegisterRoutes(RouteTable.Routes);
          }
  }

 

  在上面的代码中,你可能已经注意到如何注册URL路由,以及如何指定默认值。

  3、支持测试驱动开发

  由于MVC架构是松散的,构建单元测试用例变得很简单,它使测试驱动开发成为可能,例如,如果你有一个正常的.aspx.cs页面,你想为它建立单元测试用例,复杂度很高,因为:

  ·  你必须为你的页面代码隐藏类创建实例;

   · 隐藏代码将指向ASP.NET控件;

   · 为事件(如GridView_RowDataBound)创建单元测试用例很困难。

  在MVC模式下,文件背后没有任何代码,也没有UI元素引用,使任务变得非常容易,你需要做的仅仅是指向控制器的ActionMethod,点击右键选择“创建单元测试”,如图3所示。

URL路由,控制器响应请求

  图 3 创建单元测试

  4、HTML辅助方法的可用性

  ASP.NET MVC视图是由HTML驱动的,你不用使用任何ASP.NET服务器控件,ASP.NET MVC为此专门提供一堆HTML辅助方法,使视图开发任务变得更简单,最爽的是开发人员可以获得这些HTML辅助方法的100%智能提示,图4显示了一个示例屏幕截图。

URL路由,控制器响应请求

  图 4 HTML辅助方法智能提示

  在上面的屏幕截图中,你可能注意到了复选框(checkbox)和文本框(textbox)等部分的Lambda表达式,创建辅助方法指定控件是为注入模型的特定字段创建的。 

0
相关文章