注意:此文需要你有一定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. 洛谷——P1966 火柴排队&&P1774 最接近神的人_NOI导刊2010提高(02)

    P1966 火柴排队 这题贪心显然,即将两序列中第k大的数的位置保持一致,证明略: 树状数组求逆序对啦 浅谈树状数组求逆序对及离散化的几种方式及应用 方法:从前向后每次将数插入到bit(树状数组)中, ...

  2. 获取springbean的几种方式

    首先我说一下我遇到的问题,再项目初始化时候,spring容器初始化前要执行的操作中使用到了bean去做一些增删改查操作,这样做是不能自己使用springbean的数据源去操作的,所以需要动态获取spr ...

  3. 新浪微博API生成短链接

    通过新浪微博API,生成短链接,支持一次性转多个长链接 什么是短链接 短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串. 短链接服务 国内各大微博都推出了自己的短链接 ...

  4. python - 那些零碎的知识点

    python - 那些零碎的知识点 一. 字符串格式化 1. "旧式字符串解析(%操作符)" 'Hello, %s' % name "Hello, Bob" ' ...

  5. python下操作mysql 之 pymsql

    python下操作mysql  之  pymsql pymsql是Python中操作MySQL的模块, 下载安装: pip3 install pymysql 使用操作 1, 执行SQL #!/usr/ ...

  6. debian 7 安装

    1. 从 live cd 或者 dvd 进行安装,官方文档已经够用,可以将 live cd 写进 u 盘,也可以将 dvd 放到硬盘上通过 grub 引导启动安装,文档在这里. 2.安装过程中尽量选择 ...

  7. Tensorflow读取csv文件(转)

    常用的直接读取方法实例:#加载包 import tensorflow as tf import os #设置工作目录 os.chdir("你自己的目录") #查看目录 print( ...

  8. ERROR: mount point </.alt.rootd3_EISMar14/opt/oracle/product/10.2> is already in use

    在给solaris系统升级的时候,用lu方法遇到下面的错误. -bash-3.2# lumount rootd3_EISMar14 ERROR: mount point </.alt.rootd ...

  9. 【LeetCode】Longest Substring Without Repeating Characters 解题报告

    [题意] Given a string, find the length of the longest substring without repeating characters. For exam ...

  10. Sahara中的数据模型

    声明: 本博客欢迎转载.但请保留原作者信息,并请注明出处! 作者:郭德清 团队:华为杭州OpenStack团队 本文主要是介绍下Sahara中一些常见的数据模型. 1.Config 用于描写叙述配置信 ...