效果如下图:Model-View-Controller全面分离.....
View中去掉了一定要将View放在View文件夹下.....支持多层目录如:/Blog/Account/Manage/user/index
1.传参数:controller/action_param 在action后面加_再跟上参数
由于使用/param的话参数被认为目录了所以不可能,就用_代替了,可以自己在gobal.asax添加更灵活的路由
2.模板页可放在Shared目录下也可以放在Controller根目录或目录下的master文件夹
用户模板可以放在controller目录下的ucs或modules,也可放在根目录
3.添加了一个主题功能配置文件在data/configs/db.xml下可调用Html.BuildCssLink()创建Css链接
BuildJsLink()创建Javascript链接
4.在gobal.ascx中只需要自己定义domain指向的路由就可以了,配置文件代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace Sonven.Mvc
{
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("domain","", new { controller = "Web", action = "Index" }); //添加访问域名路由
}
protected void Application_Start()
{
Sonven.Mvc.Router.MapRouterRules(RouteTable.Routes, 4);
ViewEngines.Engines.Add(new Sonven.Mvc.ViewEngine());
RegisterRoutes(RouteTable.Routes);
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace Sonven.Mvc
{
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("domain","", new { controller = "Web", action = "Index" }); //添加访问域名路由
}
protected void Application_Start()
{
Sonven.Mvc.Router.MapRouterRules(RouteTable.Routes, 4);
ViewEngines.Engines.Add(new Sonven.Mvc.ViewEngine());
RegisterRoutes(RouteTable.Routes);
}
}
不用再为controller/action/id添加路由,默认支持多级目录
点击这里下载源代码aspnet_MVC_Diy.rar