【前言】从今天开始,小静要学习Pro ASP.NET MVC3 Framework这本经典大作了,我是下载的电子版学习的。在这里只是用作学习的记录,便于以后查阅,也为了督促自己坚持下去。不用于任何商业用途。


要想掌握一种开发框架,光靠眼睛看是不够的,一定要动手使用,才能快速熟悉起来。现在就从创建MVC3项目开始,一步步了解MVC项目的基本结构和开发流程。

1. 创建第一个MVC项目:

  • 在安装好MVC3环境之后,首先我们新建一个MVC3项目(ASP.NET MVC3 Web Application):

  • 这里有三种项目模板:空模板,Internet应用程序和Intranet应用程序。我们选择第二种。
  • View引擎:在之前版本中使用的是ASPX引擎,MVC3引入了新的Razor引擎,它使用起来很方便又容易上手,所以一般建议使用Razor引擎。
  • Create a unit test project:选中之后会自动创建测试项目。

  • 点击OK,可以看到项目创建成功,并自动生成了一些文件,项目解决方案如下所示:

  • 运行项目,预览效果:

2.创建第一个controller:

在webform开发方式里,url是和aspx文件所在的目录相对应的,但在MVC结构中,请求是通过controller进行处理的。在ASP.NET MVC中,controller一般是继承自System.Web.Mvc.Controller的类,通常放在controllers文件夹下。controller中每个public方法称作一个action方法,可以通过特定url来调用action方法。

  • 右键Controllers=>添加=>controller,名字要以Controller结尾。默认提供了三种controller模板,我们选择空模板。

public class IndexController : Controller

{

public ActionResult Index()

{

return View();//返回与action同名的view结果

}

}

新建controller后,会默认添加一个名为Index的action,其返回类型为ActionResult。返回结果使用return View(),无参数表示返回与action同名的view,也可以传递字符串参数指定view名称。

3.添加View来展示页面

  • View查找路径:在添加view之前,我们先运行一下:

这个错误不但提示了MVC找不到view,还展示了查找view的顺序。其中第一个index是url中的controller名字(去掉后缀);第二个index是action名称,我们没有指定action名称的时候默认是Index,当然这个也是可以在Global文件中自定义的。

  • 添加view:在Index这个action代码块内右键=>添加view,如下图点击OK。

我们可以看到自动添加了文件~/Views/Index/Index.cshtml,其路径格式为~/Views/Controller名称(去掉后缀)/action名称.cshtml, .cshtml后缀表示使用Razor引擎的c# view文件。如果使用的ASPX引擎,那么view文件后缀还是.aspx。

4. ViewBag输出动态数据

从controller向view传递数据可以使用ViewBag对象,它是Controller从父类继承来的属性,从对象浏览器查看如下:

public dynamic ViewBag { get; }

Member of System.Web.Mvc . ControllerBase

Summary:

Gets the dynamic view data dictionary.

Returns:

The dynamic view data dictionary.

使用实例:

  • 首先在controller为ViewBag赋值:

public ActionResult Index()

{

int hour = DateTime.Now.Hour;

ViewBag.hello = string.Format( "{0} ,欢迎来到大米返利网www.damifanli.com" , hour < 12 ? "早上好" : "下午好" );

return View();

}

  • 然后在view中读取ViewBag传递过来的数据:

@{

ViewBag.Title = "首页";

}

<h2>@ViewBag.hello</h2>

  • 运行效果如下:

至此,我们创建了第一个MVC3项目,对于MVC3项目的基本结构也有了初步了解。

跟小静学MVC3[01]--创建第一个MVC3项目相关推荐

  1. 从零开始学android开发-创建第一个android项目

    打开ADT开发工具 [file]-[new]-[android application project] 填写application name ,project name,package name,点 ...

  2. python创建django项目_搭建Python-Django环境,创建第一个Django项目

    曾想学爬虫,没想到误入python web班,在美女老师shirely的指导下,搭建了好Django环境,试着开始做第一个web项目 一.Python环境安装 1.Python2.7的下载 从Pyth ...

  3. 我刚创建了一个开源项目OXmlEd,欢迎大家拍砖

    我刚创建了一个开源项目 OXmlEd ,欢迎大家拍砖 小弟我刚在sourceforge上创建了一个开源项目OXmlEd,网址是: https://sourceforge.net/projects/ox ...

  4. 创建第一个IOS项目

    今天我们创建第一个IOS项目,并在模拟器上运行 首先进入Xcode 点击创建新项目后,接下来该给项目起一个名字啦 HelloWorld! 点击下一步,开始选择模板啦 我们选择SingleView Ap ...

  5. 五十一、创建第一个Maven项目和pom.xml 详解

    @Author:Runsen @Date:2020/6/12 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...

  6. 创建第一个Django项目

    创建第一个Django项目: 我们将介绍Django 管理工具及如何使用 Django 来创建项目,第一个项目我们以 HelloWorld 来命令项目. 测试版本说明: python 3.7 Djan ...

  7. 将Maven集成到idea中并创建第一个Maven项目

    在将Maven集成到idea中之前,你需要确保你已经安装过了Maven,在DOS下输入mvn -v如果显示如下,则证明已安装,如果没有安装,可以参考Maven的下载安装,如果你不知道Maven的一些基 ...

  8. VsCode创建第一个vue项目

    转载自:https://www.cnblogs.com/z45281625/p/9015380.html VsCode创建第一个vue项目 使用vue-cli快速构建项目  ( vue-cli 是vu ...

  9. 创建第一个phpstorm项目(phpstorm+Apache)

    创建第一个phpstorm项目 1.点击新建项目 2.选择新建空项目 3.选择新建项目位置(由于要使用apache,所以项目一定要建在apache下的htdocs下) 4.给项目命完名 5.再次确认文 ...

最新文章

  1. html es表达式传参,ES2015 正则表达式新增特性
  2. corosync+pacemaker+crmsh的高可用web集群的实现
  3. java中获取当前服务器的Ip地址
  4. 好看的按钮组件_一个能决定命运的按钮,你敢来挑战吗?
  5. JQ学习(三)-ajax
  6. sklearn PCA特征降维
  7. post 请求 argument type mismatch_Flask-RESTful 请求解析
  8. mysql 命令行批量sql_命令行中执行批量SQL的方法
  9. 你真的了解load方法么?(转载)
  10. PHP数据layui表格,基于layui和thinkphp数据表格的数据接口,layui表格局部刷新
  11. textarea光标处插入文字
  12. 14.PHP vld 扩展
  13. Shellex:针对shellcode的转换与处理工具
  14. mysql客户sqlyog_MySQL客户端工具 SQLyog
  15. matlab确定物体影子,用MATLAB浅析太阳影子定位问题
  16. 解决精简版GhostXP或WIN7中木有超级终端及打开超级终端无图标的问题
  17. PB级数据实时分析,ClickHouse到底有多彪悍?
  18. 理光Ricoh Pro 907EX 一体机驱动
  19. 四色定理(DFS深搜)
  20. 建议收藏 | IC专业术语盘点

热门文章

  1. 计算机工程与应用 网站,计算机工程与应用杂志
  2. Oracle occi 抓包,instantclient 32下载-instantclient-basic(轻量级数据库)32位 11.2.0.4.0 官方版 - 河东下载站...
  3. Classpath entry org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER will not be exported or published. Runtim
  4. Protobuf生成Go代码指南
  5. 使用Express搭建Web服务器
  6. 关于Stop The World的几个问题
  7. springboot整合多数据源
  8. Dart最新消息:Angular 2 Dart及Flutter发布
  9. 导入开源的文件云存储平台-Seafile
  10. Java基础——构造代码块