只用一行代码让你的ASP.NET MVC 跑起来
只用一行代码让你的ASP.NET MVC 跑起来
MVC框架一直是企业开发绕不过去的东西,先是JavaEE的 Structs, 然后是 Spring MVC, 再到我们今天要讨论的ASP.NET MVC。比较而言,C#程序员还是要幸福很多,因为微软帮我们做了太多我们不喜欢花时间的东西,让我们可以解放出来更加集中精力关注业务逻辑,对于JavaEE来说,就没有那么幸福, 对于每一个你想使用的框架,你都需要自己plugin起来,同时还要自己配置环境,是没有什么难度,但是浪费了时间,时间也是钱啊,所以说天下没有免费的午餐,不是没有道理的。
闲话少说,让我们看看代码吧,首先使用Visual Studio新建一个空的ASP.NET MVC工程, 然后新建一个Controller 我们起名为HomeController,代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- namespace MvcTest.Controllers
- {
- public class HomeController : Controller
- {
- // GET: /Home/
- public string Index(){return "Hi There!"}//我只改动了这一行代码
- }
- }
下面让我们开看看代码的运行结果:
---------------------------------------
Hi There!
---------------------------------------
神奇的事情发生了,浏览器输出了我们看到的结果,我们只写了一行代码,这就是ASP.NET MVC和Visual Studio的魅力所在。那么下面让我们简单剖析一下为什么只需要一行代码就跑起来了?神秘的地方其实在如下的文件RouteConfig.cs中, 从代码中我么可以清楚的看到,默认的Controller 叫Home,默认的Action叫Index,当有页面请求的时候,默认的Controller 进行响应,默认的Action被调用,一切的一切就像命中注定一样,显得那么自然。
相对而言,如果我们写这样一个示例,如果使用的是Spring MVC, 仅仅开发环境的配置可能都要花些时间,等你真正写好了,说不定人家已经开始业务逻辑了。
不评论是谁模仿谁,框架方面,只要JavaEE有的,一般在.NET中一般也有对应的框架,区别就是NB的Visual Studio 解放了很多的生产力,这样的例子数不胜数DI, AOP, ORM,Unit Test..
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- using System.Web.Routing;
- namespace MvcTest
- {
- public class RouteConfig
- {
- public static void RegisterRoutes(RouteCollection routes)
- {
- routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
- routes.MapRoute(
- name: "Default",
- url: "{controller}/{action}/{id}",
- defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
- );
- }
- }
- }
只用一行代码让你的ASP.NET MVC 跑起来的更多相关文章
- 【转】自动识别是手机端还是pc端只用一行代码就搞定
<script type="text/javascript"> var mobileAgent = new Array("iphone", &quo ...
- 一行代码实现Okhttp,Retrofit,Glide下载上传进度监听
https://mp.weixin.qq.com/s/bopDUFMB7EiK-MhLc3KDXQ essyan 鸿洋 2017-06-29 本文作者 本文由jessyan投稿. jessyan的博客 ...
- 在Python中,如何用一行代码去判定整数二进制中的连续 1
利用字节位操作如何判断一个整数的二进制是否含有至少两个连续的1 的方法有多种,大家第一反应应该想到的是以下的第一种方法. 方法一:从头到尾遍历一遍每一位即可找出是否有连续的1存在 这个方法是最普遍的. ...
- ASP.NET MVC 5 02 - ASP.NET MVC 1-5 各版本特点
参考书籍:<ASP.NET MVC 4 高级编程>.<ASP.NET MVC 5 高级编程>.<C#高级编程(第8版)>.<使用ASP.NET MVC开发企业 ...
- ASP.NET MVC 5 - 给数据模型添加校验器
在本节中将会给Movie模型添加验证逻辑.并且确保这些验证规则在用户创建或编辑电影时被执行. 拒绝重复 DRY ASP.NET MVC 的核心设计信条之一是DRY: "不要重复自己(DRY ...
- [转]ASP.NET MVC 5 - 给数据模型添加校验器
在本节中将会给Movie模型添加验证逻辑.并且确保这些验证规则在用户创建或编辑电影时被执行. 拒绝重复 DRY ASP.NET MVC 的核心设计信条之一是DRY: "不要重复自己(DRY ...
- ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...
- [译]Asp.net MVC 之 Contorllers(一)
Asp.net MVC contorllers 在Ajax全面开花的时代,ASP.NET Web Forms 开始慢慢变得落后.有人说,Ajax已经给了Asp.net致命一击.Ajax使越来越多的控制 ...
- [译]Asp.net MVC 之 Contorllers(二)
URL路由模块 取代URL重写 路由请求 URL路由模块的内部结构 应用程序路由 URL模式和路由 定义应用程序路由 处理路由 路由处理程序 处理物理文件请求 防止路由定义的URL 属性路由 书接上回 ...
随机推荐
- linux-13基础命令之-touch,mkdir
1. touch 命令 用于创建空白文件与修改文件时间,格式:touch[选项][文件]: linux 下文件时间有三种 @1.更改时间(mtime):内容修改时间: @2.更改权限(ctime): ...
- LEFT JOIN 多表查询的应用
表结构如下:只把主要字段列出 表一:付款记录表 Gather 字段:GatherID , AccountID, PayMents 金额, PayWay 付款方式 1 现金 2 刷卡 表2:销售记录 ...
- 人人都是 DBA(II)SQL Server 元数据
SQL Server 中维护了一组表用于存储 SQL Server 中所有的对象.数据类型.约束条件.配置选项.可用资源等信息,这些信息称为元数据信息(Metadata),而这些表称为系统基础表(Sy ...
- 用手机访问本地环境的利器ngrok
我们在调试移动端页面,尤其是调试微信页面的时候,会遇到这样的情况,手机连着公司的wifi,开发环境(台式机)插着公司的网线,我们要用手机来访问开发环境下的页面.这个时候,如果网线和wifi是在同一个网 ...
- [异常解决] virtualbox从.VDI备份文件新建/恢复虚拟机(包括恢复各个备份节点)
一.前言: ubuntu上的virtualbox中的虚拟机如果关机不当会导致整个虚拟机坏掉,而且采用各种debug方式都难以让它重新启动.这时你只能用之前备份的各个VDI文件来恢复系统了.还有另一种场 ...
- php操作xml
最近计划写个人的小网站,一系列原因选择了用php来写,最大的问题就是虽然php很流行,但我从来没有接触过php,看了一个多星期的基本语法后做些小练习热热身,但是期间是各种问题啊,主要是对php不熟悉, ...
- Lucene系列-近实时搜索(1)
近实时搜索(near-real-time)可以搜索IndexWriter还未commit的内容,介于immediate和eventual之间,在数据比较大.更新较频繁的情况下使用.本文主要来介绍下如何 ...
- [Spring框架]Spring AOP基础入门总结一.
前言:前面已经有两篇文章讲了Spring IOC/DI 以及 使用xml和注解两种方法开发的案例, 下面就来梳理一下Spring的另一核心AOP. 一, 什么是AOP 在软件业,AOP为Aspect ...
- salesforce 零基础学习(三十四)动态的Custom Label
custom label在项目中经常用到,常用在apex class或者VF里面用来显示help text或者error message.有的时候我们需要用到的信息是动态变化的,那样就需要动态来显示信 ...
- javascript_core_05之正则表达式
1. 检索关键词: ①检索固定关键词的位置: var i=str.indexOf(“关键词”,fromi):在str中查找fromi位置后,下一个关键词的下标位置:省略fromi,从0开始: var ...