注意:此文需要你有一定Asp.net MVC的基础,很多东西省略了,只是做个提要笔记形式。

要创建一个ASP.NET MVC的Web应用,首先要去下载ASP.NET MVC框架, 可以访问ASP.NET 官方网站,http://www.asp.net/mvc下载一个web平台安装器,

环境:

  • VS2010,
  • MySQL 5.6
  • Entity Framework 5
  • .NET 4.0

创建一个新的项目

选择Razor视图引擎,这是一个新的页面标签语法,后面会介绍

创建完成,项目结构式如下所示

这里面,要首先要了解的是“路由”, “控制器”, “视图”, “ 模型”, 视图和控制器是属于UI层, 因为, 控制器只应该包含UI逻辑,而不包含业务逻辑, 数据和业务逻辑放在模型里面。 这个是和以前的WebForm开发有关系而又不同的地方。


路由--负责确定由哪个控制器操作来处理待定的URL请求

它有三个元素

Unique name, 路由的唯一名字。

URL pattern, 将URL解析成有意义词语的简单模式语法。

Defaults, URL模式里定义的参数变量的默认值。

Constraints, 为URL匹配模式定义更严格的约规则

打开App_Start文件夹下的RouteConfig.cs文件可以看到以下内容

这是默认MVC项目添加的一个通用路由,UrlParameter.Optional的意思是可选的,如果有参数就取参数值,如果没有也可以。


控制器--就是包含被路由请求时调用方法的类

  public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message = "修改此模板以快速启动你的 ASP.NET MVC 应用程序。";
 
            return View();
        }
 
        public ActionResult About()
        {
            ViewBag.Message = "你的应用程序说明页。";
 
            return View();
        }
 
        public ActionResult Contact()
        {
            ViewBag.Message = "你的联系方式页。";
 
            return View();
        }
    }
}

这个HomeController控制器类包含了三个操作Index, About, Contact, 当使用刚才的默认路由时,当请求/Home/About, 框架就会寻找HomeController这个类中的About方法来处理请求。

尽管每个控制器都要返回ActionResult, 但是大部分时间不需手动完成, 这个没明白什么意思。

System.Web.Mvc.Controller基类提供的帮助方法说明如下

  • Content()返回文本类型的ContentResult, 比如“Hello, World!”。
  • File()返回文件类型的内容FileResult, 比如PDF。
  • HttpNotFound() 返回包含404HTTP状态吗的HttpNotFoundResult。
  • JavaScript() 返回包含Javascript内容的JavaScriptResult, 比如“function hello(){alert(Hello, World!);}”。
  • Json () 返回JSON格式数据的JsonResult, 比如“{“Message”:Hello, World!}”。
  • PartialView() 返回包含部分视图内容的PartialViewResult。
  • Redirect()返回一个包含302跳转状态值RedirectResult, 跳转到给定的URL上。 例如, “302 http://…..”,
  • RedirectToAction()和RedirectToRoute()  与Redirect()类似,只有框架可以动态查询路由引擎来确定外部的URL.
  • View() 返回渲染视图的ViewResult。


视图--这个比较讨厌,视图就是返回给用户的页面

ASP.NET MVC 将会使用控制器提供的名字。去Views目录下面去找, 举例来说, HomeController的Index()操作方法如下:

        public ActionResult Index()
{
ViewBag.Message = "修改此模板以快速启动你的 ASP.NET MVC 应用程序。"; return View(); //这里无参调用View ,就会去找一个和操作方法同名的视图,先在Views下的Home目录找,找不到再到Shared目录下找。
}
 

使用Razor语法的视图,要区分代码段@{},和代码块@XXX,区别是代码段是简单表达式,返回标记代码给视图渲染。

可以在控制器方法里面,使用ViewBag 或ViewData 从控制器向视图传递数据

除了基本的字典行为, ViewData对象也提供了Model属性,这是请求的原始模型对象

        public ActionResult About()
        {
            ViewBag.Message = "你的应用程序说明页。";
            //ViewBag.CompanyName = "Ebuy: The ASP.NET MVC Demo Site";
            //ViewBag.CompanyDescription = "Ebuy is the world leader in ASP.NET MVC demoing!";
 
            var company = new CompanyInfo
                {
                    Name = "Ebuy: The ASP.NET MVC Demo Site",
                    Description = "Ebuy is the world leader in ASP.NET MVC demoing!",
                };
 
            return View("About" , company);
        }

这里View方法的第二个参数company就是要赋值给ViewData.Model属性的对象, 在About.cshtml中,Razor语法直接使用@model声明,指定company就是Model类型。

HTML和URL帮助方法,这个不多说了,看到查帮助吧

Asp.net MVC4 Step by Step (1)-路由,控制器,视图的更多相关文章

  1. Asp.Net MVC4 系列--进阶篇之路由 (2)

    上一篇介绍了Asp.Net MVC 中,从Http Pipeline上接收到请求如何匹配,匹配限制,以及如何控制在指定命名空间查找,解析出controller和action,并传参. 这篇主要介绍如何 ...

  2. Asp.Net MVC4 系列-- 进阶篇之路由(1)

    创建一个路由 打开 RouteConfig.cs  ,发现已经创建了一个默认路由 : routes.MapRoute( name:"Default", url:"{con ...

  3. Asp.Net MVC4 系列-- 进阶篇之路由

    原文  http://blog.csdn.net/lan_liang/article/details/22993839 创建一个路由 打开 RouteConfig.cs  ,发现已经创建了一个默认路由 ...

  4. Asp.Net MVC4 系列-- 进阶篇之路由(1)【转】

    http://blog.csdn.net/lan_liang/article/details/22993839?utm_source=tuicool

  5. ASP.NET MVC4 新手入门教程之六 ---6.编辑视图与编辑方法

    在本节中,您会为电影控制器检查生成的操作方法和视图.然后,您将添加一个自定义的搜索页面. 运行该应用程序,然后浏览到Movies控制器通过将/Movies追加到您的浏览器的地址栏中的 URL.将鼠标指 ...

  6. ASP.NET MVC4 新手入门教程之三 ---3.添加视图

    在这一节你要修改HelloWorldController类要使用的视图模板文件来干净封装生成 HTML 响应到客户端的过程. 您将创建一个使用Razor 视图引擎介绍 ASP.NET MVC 3 的视 ...

  7. ASP.NET MVC轻教程 Step By Step 8——路由

    在前面的教程里,细心的你可能会有个疑问,就是地址栏输入/Home/Write就可以进入留言页面.无论是静态HTML还是ASP/ASP.NET.PHP,URL都是和某个页面相关.比如假设有个URL是“w ...

  8. Asp.net MVC4 Step By Step(5)-使用Web API

    Web API是ASP.net MVC4新增的一个特色, 应用于处理Ajax请求, 他同时使用了Web标准规范, 比如Http, Json,和XML,以及一系列构建REST数据服务的参考原则, 和AS ...

  9. Asp.Net Core 5 REST API - Step by Step

    翻译自 Mohamad Lawand 2021年1月19日的文章 <Asp.Net Core 5 Rest API Step by Step> [1] 在本文中,我们将创建一个简单的 As ...

  10. [转]Bootstrap 3.0.0 with ASP.NET Web Forms – Step by Step – Without NuGet Package

    本文转自:http://www.mytecbits.com/microsoft/dot-net/bootstrap-3-0-0-with-asp-net-web-forms In my earlier ...

随机推荐

  1. svn 使用TortoiseSVN server搭建本地SVN服务器

    使用TortoiseSVN server搭建本地SVN服务器

  2. nlogn求LIS(树状数组)

    之前一直是用二分 但是因为比较难理解,写的时候也容易忘记怎么写. 今天比赛讲评的时候讲了一种用树状数组求LIS的方法 (1)好理解,自然也好写(但代码量比二分的大) (2)扩展性强.这个解法顺带求出以 ...

  3. Android一键换肤功能:一种简单的实现

     Android一键换肤功能:一种简单的实现 现在的APP开发,通常会提供APP的换肤功能,网上流传的换肤代码和实现手段过于复杂,这里有一个开源实现,我找了一大堆,发现这个项目相对较为简洁:htt ...

  4. ZooKeeper常用命令行工具及使用(转)

    一.服务端 bin目录下常用的脚本解释 zkCleanup:清理Zookeeper历史数据,包括食物日志文件和快照数据文件 zkCli:Zookeeper的一个简易客户端 zkEnv:设置Zookee ...

  5. hibernate分表保存日志

    @Service("accessLogService")@Transactionalpublic class LogMessageServiceImpl extends BaseD ...

  6. linux系统读写缓存

    1.  操作系统缓存 在linux世界里,一切可读写设备都可看作是文件.文件cache设计的好坏直接影响着文件系统和磁盘的性能.最直观的是使用free命令看到的cached列. 这里面的cached列 ...

  7. python 函数和函数式编程

    什么是函数 调用函数 创建函数 变长参数 函数式编程 变量的作用域 生成器 1 什么是函数 函数是对程序逻辑进行结构化或过程化的一种编程方法.能将整块代码巧妙地隔离成易于管理 的小块,把重复代码放到函 ...

  8. sleep与信号唤醒的问题 & 内核对信号的处理方式

    注意,sleep是会被信号唤醒的.   sleep函数:#include <unistd.h>unsigned int sleep(unsigned int seconds);此函数使调用 ...

  9. WCF学习笔记——配置服务引用

    WCF传过来的东西要序列化. 比如,在WCF服务中,象这么个方法 public IEnumerable<UserItem> GetUserList() 默认情况下,在客户端会调用,是这样: ...

  10. mysql数据库字符编码修改

    mysql数据库字符编码修改 修改数据库的字符集mysql>use mydb mysql>alter database mydb character set utf8; 创建数据库指定数据 ...