博客园 | 首页 | 发新随笔 | 发新文章 | 联系 | 订阅  | 管理

随笔:10 文章:0 评论:9 引用:0

ASP.NET MVC 学习第一天

今天开始第一天学习asp.net mvc,写的不是很好,高手不要喷,希望大家能一起进步学习。

好了,开始学习

新建项目,选择mvc 4应用程序

接下来选择基本,视图引擎当然要选择Razor,如果在选择aspx那我们就没必要用mvc喽

在这里我们简单说一下,项目模板如果选择空,这就需要我们自己进行导入很多文件,而选择基本vs会自动导入需要的文件,对mvc不熟的人,还是先老实一点吧。

后面两个Internet、Intranet一个是网络web,一个是内网的。没有用过,也不是很了解。移动选项应该是开发手机相关的,api是提供第三方的接口使用的(类似于web service,轻量级)。

点击确定,vs会给我们导入好多文件。好奇一下,可以看一下项目文件夹下的packages的文件夹,里面好多文件啊,包括我们之前学习的ef,还有最重要我们将要学习的mvc库。

看一下解决方案资源管理器

其中App_Data没有太大的用处,主要是可以将数据库放入其中,该文件夹下的内容是不准请求访问的。可删除

App_Start是网站启动的时候用到的一些配置信息文件,里面有个路由文件相对重要一些。这里面的内容在全局文件中会依次调用的。

简单的分析一下路由的配置,看下RouteConfig.cs里面的内容

 1 public static void RegisterRoutes(RouteCollection routes)
2 {
3 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
4
5 routes.MapRoute(
6 name: "Default",
7 url: "{controller}/{action}/{id}",
8 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
9 );
10 }

下面是我的请求

因为我没有写全路径,所以请求的是默认路径,那为什么报错了呢?那是因为我还没有写默认配置的home控制器和index方法。现在我们将该控制器和方法写好。

在Controlllers文件夹下添加控制器Home,注意控制器名称必须以Controller结尾

下面是vs给我们自动生成好的代码,遗憾的是vs只给我们生成了默认的index方法,但是没有给我们生成视图。控制器必须要继承自Controller

 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Web.Mvc;
6
7 namespace MvcApplication1.Controllers
8 {
9 public class HomeController : Controller
10 {
11 //
12 // GET: /Home/
13
14 public ActionResult Index()
15 {
16 return View();
17 }
18
19 }
20 }

我们在index方法上点击右键添加视图便可以添加视图了。但我先不这样做,我要改写这个方法,为了是先简化学习。稍后再学习视图部分。下面是我改后的方法,怎么样,很简单吧。

 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Web.Mvc;
6
7 namespace MvcApplication1.Controllers
8 {
9 public class HomeController : Controller
10 {
11 //
12 // GET: /Home/
13
14 public string Index()
15 {
16 return "The first mvc";
17 }
18
19 }
20 }

现在我们再用刚才报错那个地址访问以下吧,怎么样?结果出来了吧!

当然这个地址是默认配置的,标准的我们应该访问的是localhost:4348/home/index 这个地址。怎么样,哈哈,我们终于甩掉aspx这个恨人的尾巴了。

其实mvc会根据url路径去与配置的路由匹配。会将localhost:4348/home/index地址分拆,home匹配控制器,index匹配方法,我们不妨试试,如果你将HomeController改掉,这时访问就会报错了。我们也可以将路由配置中的url: "{controller}/{action}/{id}"中的controller与action调换一下,改为url: "{action}/{controller}/{id}",访问一下,是不是又出错了呢?因为这个路由解析地址的时候就会将Home当做方法index当成控制器,这样当然会报错了,但我们可以讲url访问地址写成localhost:4348/index/home,这样仍然可以访问了,是不是有些明白了呢?

刚从aspx那转过来的,可能这里不太好理解。画张图,简单理解一下

上面的方法中我返回了一个字符串,这就像我们aspx中的一般处理程序一样,所有的html代码都要自己写才能返回浏览器,而后面要学习的视图(项目中的Views文件夹下)就是html代码了。下面我们来看一下视图吧,我们在home控制器中添加一个test方法

1 public ViewResult test()
2 {
3 return View();
4 }

可以选择手动或自动两种方式添加视图,先介绍手动的方式,既然test方法是在home控制器中,所以在views文件夹中添加一个home文件夹,所有控制器中的方法视图都要views文件夹下相应的控制器名称文件下。在Views/Home/下添加视图,注意,视图名称约定要与方法名一样。之后会介绍怎么可以使方法与视图名称不一样。

下面就是vs自动生成的视图文件。

我们也可以选择自动生成视图的方法,那就是在方法名称上右键添加视图,同样可以生成视图文件,效果是一样的。

 1 @{
2 Layout = null;
3 }
4
5 <!DOCTYPE html>
6
7 <html>
8 <head>
9 <meta name="viewport" content="width=device-width" />
10 <title>test</title>
11 </head>
12 <body>
13 <div>
14
15 </div>
16 </body>
17 </html>

生成的文件名是cshtml后缀,奇怪吧。修改一下内容,然后访问一下吧。

@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>test</title>
</head>
<body>
<div>
The first view of mvc
</div>
</body>
</html>

好了,今天就这样吧,简单介绍一下,下面将要介绍razor视图引擎的语法。

 
 
分类: ASP.NET MVC
 
1
0
 
(请您对文章做出评价)
 
发表于 2014-06-18 22:00 天道酬勤0322 阅读(334) 评论(4) 编辑 收藏
 
 
评论
很喜欢你的博文,多谢
eZplusy  评论于 2014-06-20 10:38    回复引用
#2楼[楼主]
@eZplusy
共同努力,共同学习,共同进步
天道酬勤0322  评论于 2014-06-20 10:40    回复引用
哥们 我最近也在学习mvc 不知道你是跟着什么书学习的呀?我在看asp.net mvc 高级编程,感觉比较抽象呀
水击三千  评论于 2014-06-23 17:12    回复引用
#4楼[楼主]
@水击三千
书一般都是比较抽象的,一些专业术语,有时感觉较多的内容都抽象成一句话,有时一句话会让你一上午都是困惑状态,理解起来很难。个人感觉看书比较适合那种悟性较高,而且可以举一反三的人。我一般都是到网上找些文章,图文并茂的理解起来很容易,提问也比较方便,当然少不了动手,有些东西看上去很简单,等自己一上手就会觉得脑子一片空白。等整体有了一些了解,这时回头看看书,那就容易多了。
天道酬勤0322  评论于 2014-06-23 17:23    回复引用
 
 
 
发表评论

昵称:

评论内容:
     
 

注销 订阅评论

[使用Ctrl+Enter键快速提交]

 
 
 
 
< 2014年7月 >
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9

公告

昵称:天道酬勤0322
园龄:1年10个月
粉丝:7
关注:15

搜索

 
 

常用链接

随笔分类

随笔档案

文章分类

最新评论

  • 1. Re:ASP.NET 运行机制
  • @林沐若
    没写什么东西,都是分析源码,凑合看吧
  • --天道酬勤0322
  • 2. Re:ASP.NET 运行机制
  • 写得很棒
  • --林沐若
  • 3. Re:ASP.NET MVC 学习第一天
  • @水击三千书一般都是比较抽象的,一些专业术语,有时感觉较多的内容都抽象成一句话,有时一句话会让你一上午都是困惑状态,理解起来很难。个人感觉看书比较适合那种悟性较高,而且可以举一反三的人。我一般都是到网上找些文章,图文并茂的理解起来很容易,提问也比较方便,当然少不了动手,有些东西看上去很简单,等自己一......
  • --天道酬勤0322
  • 4. Re:ASP.NET MVC 学习第一天
  • 哥们 我最近也在学习mvc 不知道你是跟着什么书学习的呀?我在看asp.net mvc 高级编程,感觉比较抽象呀
  • --水击三千
  • 5. Re:ASP.NET MVC 学习第三天
  • @Oh Code !!
    不是大牛了,也是学习者,呵呵,一起进步
  • --天道酬勤0322
Powered by: 博客园
模板提供:沪江博客
Copyright ©2014 天道酬勤0322

(转)ASP.NET MVC 学习第一天的更多相关文章

  1. ASP.NET MVC 学习第一天

    今天开始第一天学习asp.net mvc,写的不是很好,高手不要喷,希望大家能一起进步学习. 好了,开始学习 新建项目,选择mvc 4应用程序 接下来选择基本,视图引擎当然要选择Razor,如果在选择 ...

  2. ASP.NET MVC学习之控制器篇扩展性

    原文:ASP.NET MVC学习之控制器篇扩展性 一.前言 在之前的一篇随笔中已经讲述过控制器,而今天的随笔是作为之前的扩展. 二.正文 1.自定义动作方法 相信大家在开发过程一定会遇到动作方法的重名 ...

  3. ASP.NET MVC学习笔记-----Filter

    ASP.NET MVC学习笔记-----Filter(1) Filter类型 接口 MVC的默认实现 Description Authorization IAuthorizationFilter Au ...

  4. ASP.NET MVC学习之模型验证详解

    ASP.NET MVC学习之模型验证篇 2014-05-28 11:36 by y-z-f, 6722 阅读, 13 评论, 收藏, 编辑 一.学习前的一句话 在这里要先感谢那些能够点开我随笔的博友们 ...

  5. ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现

    ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...

  6. ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则

    ASP.NET MVC 学习笔记-7.自定义配置信息   ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...

  7. ASP.NET MVC学习之Ajax(完结)

    一.前言 通过上面的一番学习,大家一定收获不少.但是总归会有一个结束的时候,但是这个结束也意味着新的开始. 如果你是从事ASP.NET开发,并且也使用了第三方控件,那么一定会觉得ASP.NET开发aj ...

  8. ASP.NET MVC学习之视图篇(2)

    继ASP.NET MVC学习之视图(1)学习 4.HTML辅助器 虽然在ASP.NET MVC中我们已经摆脱了ASP.NET的控件,但是对于页面中需要循环标签的情况依然还是存在,可能很多人认为用for ...

  9. ASP.NET MVC学习之过滤器篇(2)

    下面我们继续之前的ASP.NET MVC学习之过滤器篇(1)进行学习. 3.动作过滤器 顾名思义,这个过滤器就是在动作方法调用前与调用后响应的.我们可以在调用前更改实际调用的动作,也可以在动作调用完成 ...

随机推荐

  1. php 基于phpexcel制作的导出excel类

    最近要写个项目,由于项目中导出excel太多,因此写个类便于使用. <?php /**如果是gbk的编码,请转为UTF8 *@使用方法. *引入类库. * $excel = news excel ...

  2. vsftpd 访问 权限控制

    vsftpd 重启命令 service vsftpd  start|restart|stop vsftpd 关于权限控制,有两个文件分别设置,都会起作用 /etc/vsftpd/user_list / ...

  3. 在网上看到一个关于APP的测试

  4. Gridview将某列内容和标题隐藏起来

    protected void gvInfo_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == Dat ...

  5. 自解压的方式创建VC++程序的打包

    Walkthrough: Deploying a Visual C++ Application By Using the Visual C++ Redistributable Package Visu ...

  6. Qt编程之Qt样例表(QSS)

    For a long time, Qt has allowed you to decorate your GUIs with CSS’ish style sheets. Inspired by the ...

  7. 8.2.1.8 IS NULL Optimization NULL 优化:

    8.2.1.8 IS NULL Optimization NULL 优化: Oracle 对待null值: SQL> create table t100(id int,name char(10) ...

  8. sybase 备份和恢复

    use master go dump transaction MBFEWKDB with no_log go dump transaction MBFEHISDB with no_log go use ...

  9. iOS项目更新之升级Xcode7 & iOS9

    金田 前言      Apple 的WWDC所发布内容在给大家带来惊喜之际,给各位iOS开发的同仁却也带来了不同程度的麻烦.首先不讲新功能,就单指原来老版本的项目升级.代码升级,就是一堆问题,而且是不 ...

  10. MFC之按键消息(长按处理)

    想要实现长按键的一些控制,查了查可以通过捕获键盘事件,然后处理按键时需要进行的操作.下面简单的实现左右按键界面更新数值加减.  1. 重载PreTranslateMessage(MSG* pMsg)函 ...