问题

当一个项目中有前台页面和后台页面,即用户页面和管理员页面,.net mvc3 如何控制路由为:Admin/{controller}/{action}/{id}访问的是管理员(Admin)的域,而通过路由:{controller}/{action}/{id}则访问的是用户页面?

解决方案

.net mvc3为我们提供了域(areas)的概念,可以在项目中添加一个管理员域,可以与用户域进行区分。

解决过程

1)首先在已有的mvc项目中添加一个Admin域,右键项目-->添加-->区域,输入区域名(Admin),就会自动生成一个Areas文件夹,里面包含了新建的域(Admin);

2)为管理员域和用户域设置不同的路由,使得当访问Admin/{controller}/{action}/{id}时,访问的是管理员域,而非用户域。

在新建Admin域时,会自动生成一个AdminAreaRegistration.cs文件,这个文件即是为不同的域设置路由,修改如下:

View Code

 1 public class AdminAreaRegistration : AreaRegistration
 2     {
 3         public override string AreaName
 4         {
 5             get
 6             {
 7                 return "Admin";
 8             }
 9         }
10
11         public override void RegisterArea(AreaRegistrationContext context)
12         {
13             context.MapRoute(
14                 "Admin_default",
15                 "Admin/{controller}/{action}/{id}",//Admin路由
16                 new { action = "Index", id = UrlParameter.Optional },//默认参数
17                 new string[]{"OpenCart.Admin.Controllers"}//**设置该路由所对应的Controller
18             );
19         }
20     }

并且修改用户域加载时注册的路由,修改如下:

View Code

 1 public static void RegisterRoutes(RouteCollection routes)
 2         {
 3             routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
 4
 5             routes.MapRoute(
 6                 "Default", // 路由名称
 7                 "{controller}/{action}/{id}", // 带有参数的 URL
 8                 new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // 参数默认值
 9                 new string[]{"OpenCart.Controllers"}//设置域,与Admin区分
10             );
11
12         }

结果

经过以上设置修改之后,用户域和管理员域就可以区分开来,访问Admin/{controller}/{action}/{id}即访问管理员域,访问{controller}/{action}/{id}即访问用户域。问题得以解决。

转载于:https://www.cnblogs.com/chtang/archive/2013/04/06/3002746.html

Asp.NET MVC3添加域(Areas)区分Admin域和用户域相关推荐

  1. linux 域账户密码忘记,linux基础命令-用户域用户组管理

    //与用户相关的配置文件:/etc/passwd:  #用户的配置文件, 保存用户账户的基本信息 /etc/shadow  #用户影子口令文件 一.用户帐号文件--passwd 1."/et ...

  2. [译]Professional ASP.NET MVC3(01)-Chapter 1:Getting Started(上)

    本章概要 理解ASP.NET MVC ASP.NET MVC3 预览 如何创建MVC3应用程序 MVC应用程序结构 本章首先简要介绍ASP.NET MVC, 解释它怎样适应ASP.NET MVC的历史 ...

  3. MVC项目开发中那些用到的知识点(Asp.Net Mvc3.0 Areas)

    前言 我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等.但是在实际的开发中,随 ...

  4. ASP.NET MVC3 快速入门--第二节 添加一个控制器

    MVC的全称为model-view-controller(模型-视图-控制器).MVC是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护.使用MVC开发出来的应用程序一般包括 ...

  5. ASP.NET MVC3 快速入门-第四节 添加一个模型(转)

    在本节中我们将追加一些类来管理数据库中的电影.这些类将成为我们的MVC应用程序中的"模型"部分. 我们将使用一个.NET Framework的被称之为"Entity Fr ...

  6. 一起谈.NET技术,在ASP.NET MVC3 中利用JSONP跨域登录WEB系统

    在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用多个用户名和密码.这样客户就需要在多个系统之间重复登陆.每次登录都需要输入用户名和密码.最近比较流行的就 ...

  7. Log4Net异常日志记录在asp.net mvc3.0的应用

    前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...

  8. ASP.NET MVC3书店--第七节 用户及身份验证(转)

    http://blog.sina.com.cn/s/blog_6ad539a90100r7jx.html 现在的问题是任何用户都可以通过StoreManager控制器来访问我们的书籍管理页面.接下来让 ...

  9. ASP.NET MVC3 Model验证总结 @Html.ValidationSummary(true)

    http://www.wyjexplorer.cn/Post/2012/8/3/model-validation-in-aspnet-mvc3 ASP.NET MVC3中的Model是自验证的,这是通 ...

最新文章

  1. do while(false)
  2. python walk_Python os.walk()方法
  3. 开源车牌识别项目,OpenALPR
  4. Apache+PHP+MySQL安装与配置
  5. mysql读写分离实现_脱离开发:Mysql读写分离方案之一
  6. OpenCV形态学变换函数morphologyEx()开运算的使用
  7. 在Eigrp做不等值路由的负载均衡
  8. 已知前序中序求层序 c语言递归,二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现...
  9. python访问注册表_Python 操作注册表
  10. 【05】AngularJS 指令
  11. SecureCRT 颜色
  12. 单表查询之选择查询 + 多表查询(2020.3.20 )
  13. rgba与16进制颜色格式互转
  14. HTML5CSS3笔记:CSS3选择器、字体和颜色模式
  15. java实现自动拨打电话语音提示
  16. eCognition软件中ESP2插件的下载与安装
  17. Delphi 热键 使用WIN作为热键的组合键 给程序增加快捷键
  18. 金山现任CEO张宏江将退休 西山居CEO继任
  19. 企业级数据仓库:数据仓库概述;核心技术框架,数仓理论,数据通道Hive技术框架,HBase设计,系统调度,关系模式范式,ER图,维度建模,星型/雪花/星座模式,数据采集同步,业务数据埋点,数据仓库规范
  20. 彩绘精灵 ArtRage 6 for Mac绘图软件

热门文章

  1. 对ActiveRecord的评论
  2. Web纯前端“旭日图”实现元素周期表
  3. android 入门 006(sqlite增删改查)
  4. 返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API
  5. [原创]一种自动地将继承自NSObject的自定义类序列化成JSON的方法
  6. 在asp.net2.0中使用串行化对象实现自定义配置
  7. RollingFileAppender
  8. 安卓高手之路之PackageManagerservice(二)
  9. 很有趣的问题,Public继承和默认的集成
  10. 算法--------最长连续序列(Java版本)