六、Asp.Net MVC4.0开发CMS系统案例之路由规则修改
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了六、Asp.Net MVC4.0开发CMS系统案例之路由规则修改,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2605字,纯文字阅读大概需要4分钟。
内容图文
![六、Asp.Net MVC4.0开发CMS系统案例之路由规则修改](/upload/InfoBanner/zyjiaocheng/1083/8eadc67e787f41f68cea8c0b4ac431ad.jpg)
今天开放的时候,发现如果我要把生成View视图页csthtml建立多个文件夹目录下面,contraller就找不到了。实际开发工作中,不可能所有生成的视图都放在View下面的一级文件夹下,对于系统的代码管理不是十分科学,于是我就尝试如何让它实现。
比如登录功能,控制器建立的路径为:Contrallers/Sys/Com/UserContraller.cs.如图:
系统添加视图默认生成View的路径为:View/User/UserLogin.cshtml.如果我要把路径改为View/Sys/Com/UserLogin.cshtml,与Contraller的保持一直,就会报错系统找不到它。
系统默认的规则只会到view/user/里面搜索。这是因为路由设置了/view/{contraller}/{action}/id 规则,当文件被移走之后就找不到了。因此我们需要通知真正的位置在哪里。
自定义路由规则,在App_Start文件夹下新建一个类MyRoute.继承自RazorViewEngine 对选择视图方法FindView进行重写。编写代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace Hillstone.App_Start { public sealed class MyRoute : RazorViewEngine { /// <summary> /// 自定义路由规则 /// </summary> public MyRoute() { ViewLocationFormats = new[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml", "~/Views/Sys/Com/{1}/{0}.cshtml" }; } public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache) { return base.FindView(controllerContext, viewName, masterName, useCache); } } }
让将这个路由规则在Global中注册,注册方法如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; using Hillstone.DAL; using Hillstone.App_Start; namespace Hillstone { // 注意: 有关启用 IIS6 或 IIS7 经典模式的说明, // 请访问 http://go.microsoft.com/?LinkId=9394801 public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); RegisterView();//注册视图访问规则 // System.Data.Entity.Database.SetInitializer<HillstoneContext>(new Initializer()); } protected void RegisterView() { ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new MyRoute()); } } }
运行OK.
本文出自 “奔跑的小蜗牛-原创空间” 博客,请务必保留此出处http://songjiahao.blog.51cto.com/4433831/1583385
原文:http://songjiahao.blog.51cto.com/4433831/1583385
内容总结
以上是互联网集市为您收集整理的六、Asp.Net MVC4.0开发CMS系统案例之路由规则修改全部内容,希望文章能够帮你解决六、Asp.Net MVC4.0开发CMS系统案例之路由规则修改所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。