mvc路由特性学习1

修改App_Start/RouteConfig.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace Web
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            //注释掉系统生成的代码后,自定义路由。
            routes.MapMvcAttributeRoutes();

            //routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            //routes.MapRoute(
            //    name: "Default",
            //    url: "{controller}/{action}/{id}",
            //    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            //);
        }
    }
}

AccountController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Web.Controllers
{
    //[Route("account/{action}")]//给控制器(类)中的操作方法定义一个全局的规则,如果想对单独的操作方法重写访问路由,那么在对应的操作方法上定义特性即可,在单独的操作的方法上定义特性会覆盖全局的路由规则。
    [RoutePrefix("account")]//给当前控制器中的操作方法给定一个默认的前缀,当操作方法没有加控制器名称的时候会自动的为每个控制器增加前缀,从而避免写重复的代码
    [Route("{action}")]
    public class AccountController : Controller
    {
        // GET: Account
        //[Route("account/{year}/{month}/{day}")]//从用户请求的url通过路由规则映射到此操作方法
        [Route("~/")]//使用~/作为当前路由模板的开头
        [Route("")]//增加/路由的支持
        [Route("index")]
        public ActionResult Index(string year="",string month="",string day="")
        {
            ViewBag.Message = year + month + day+"---";
            return View();
        }
    }
}
时间: 2024-10-01 05:28:23

mvc路由特性学习1的相关文章

ASP.NET MVC之路由特性以及母版页呈现方式(十二)

前言 这一节我们开始讲讲基础的东西也就是如题目所言,个人觉得当学习或者利用MVC时,必须得知道最新迭代版本新增了什么,至少得知道MVC 3.MVC 4或者MVC 5有什么区别,而不至于当利用到低版本时,出现某些特性就懵逼以至于认为是代码出了问题,这一点是很明确需要我们去了解. 话题 在MVC 5之前都是基于约定的路由,如下: routes.MapMvcAttributeRoutes(); routes.MapRoute( name: "Default", url: "{con

MVC 插件化框架支持原生MVC的Area和路由特性

.NET MVC 插件化框架支持原生MVC的Area和路由特性 前面开放的源码只是简单的Plugin的实现,支持了插件的热插拔,最近晚上偶然想到,原生的MVC提供Areas和RouteAtrribute等路由特性标签,按照先前的做法,无法解析插件的路由特性和Areas,所以花费了两个晚上的时间,把插件给改进到支持Areas和路由特性,但同时也放弃了Web类插件的热插拔,Func类的插件依然支持热插拔. 下面是实现支持插件使用Areas和路由特性标签的流程: 原生的MVC在启动的时候需要执行两条代

.NET MVC 插件化框架支持原生MVC的Area和路由特性

前面开放的源码只是简单的Plugin的实现,支持了插件的热插拔,最近晚上偶然想到,原生的MVC提供Areas和RouteAtrribute等路由特性标签,按照先前的做法,无法解析插件的路由特性和Areas,所以花费了两个晚上的时间,把插件给改进到支持Areas和路由特性,但同时也放弃了Web类插件的热插拔,Func类的插件依然支持热插拔. 下面是实现支持插件使用Areas和路由特性标签的流程: 原生的MVC在启动的时候需要执行两条代码: AreaRegistration.RegisterAllA

ASP.Net MVC开发基础学习笔记(3):Razor视图引擎、控制器与路由机制学习

首页 头条 文章 频道                         设计频道 Web前端 Python开发 Java技术 Android应用 iOS应用 资源 小组 相亲 频道 首页 头条 文章 小组 相亲 资源 设计 前端 Python Java 安卓 iOS 登录 注册 首页 最新文章 经典回顾 开发 Web前端 Python Android iOS Java C/C++ PHP .NET Ruby Go 设计 UI设计 网页设计 交互设计 用户体验 设计教程 设计职场 极客 IT技术

ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习

一.天降神器“剃须刀” — Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留下来的ASPX引擎或者第三方的NVelocity模板引擎. Razor在减少代码冗余.增强代码可读性和Visual Studio智能感知方面,都有着突出的优势.Razor一经推出就深受广大ASP.Net开发者的喜爱. 1.2 Razor的语法 (1)Razor文件类型:Razor支持两种文件类型,分

MVC笔记--特性路由

物性路由:将路由和控制器放在一起,这样更简单方便,还可以处理复杂的路由场景 传统路由:集中.强制.基于代码风格来定义的. 每个MVC应用程序都需要路由来定义自己的处理请求方式,路由是MVC是应用程序的入口点.我们先了解一下路由涉及的主要概念:路由定义是从URL模板开始的,因为它指定了与路由相匹配的模式.路由定义可以做为控制器类或操作方法的特性.路由可以指定的它的URL及其默认值,此外,它还可以约束URL的各个部分,提供关于路由如何及何时与传入的URL相匹配的严格控制. 创建一个MVC程序后,我们

学习ASP.NET MVC5框架揭秘笔记-ASP.NET MVC路由(一)

2.2ASP.NET MVC路由 ASP.NET的路由系统旨在通过注册路由模板与物理文件路径之间的映射进而实现请求地址与文件路径之间的分离,但对于ASP.NET MVC应用来说,请求的目标不再是一个具体的物理文件,而是定义在某个Controller类型中的Action方法.出于自身路由特点的需要,ASP.NET MVC对ASP.NET路由系统进行了相应的扩展. 2.2.1路由映射 通过前面的介绍我们知道,RouteTable的静态属性Routes返回的RouteCollection对象代表了针对

【ASP.NET MVC 牛刀小试】 ASP.NET MVC 路由

例子引入 先看看如下例子,你能完全明白吗? 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 using System.Web.Routing; 7 8 namespace MVCDemo 9 { 10 public class RouteConfig 11 { 12 public static void Re

ASP.NET MVC5+ 路由特性

概述 ASP.NET MVC 5支持一种新的路由协议,称为路由特性. MVC5也支持以前定义路由的方式,你可以在一个项目中混合使用这两种方式来定义路由. 案例 1.使用Visual Studio 2013 创建一个 4.5.1的 Web 项目,选择MVC框架 2.配置RouteConfig.cs 附图: 3.现在就可以在控制器中使用路由属性了 附图 4.约束图 本图摘自 园友 Wolfy 文章 运行结果 总结 ASP.NET MVC5 正在学习中,欢迎一起交流学习. .NET技术交流群 1992