还是讲一些项目中你可能遇到的问题,有的时候人总是不听话,想改变原有的东西。今天我就教你怎么样颠覆MVC传统的文件夹结构,即个性化你的目录。ok,开始。先看看我设计的目录
我的controller下有这么多文件夹。再看看我的views
看到了吧,按照系统分类我进行了详细的划分。
现在带你看看controller如何找到view,controller代码
namespace Controllers
{
public class CodeController:Controller
{
public ActionResult Index()
{
SpringContext.init();
dynamic dyn = SpringContext.Context.GetObject( "DaoHelper") as dynamic;
IList<SS_CODE> ilist = dyn.GetList();
return View( "~/Views/System/Code/Index.aspx",ilist);
}
}
}
{
public class CodeController:Controller
{
public ActionResult Index()
{
SpringContext.init();
dynamic dyn = SpringContext.Context.GetObject( "DaoHelper") as dynamic;
IList<SS_CODE> ilist = dyn.GetList();
return View( "~/Views/System/Code/Index.aspx",ilist);
}
}
}
如果不这样写,controller根本找不到view,因为你已经把视图的路径改了。这样还不行,我们还需要对route进行设置,打开Global.asax,把路由改为
public
static
void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute( "{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"System/{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
{
routes.IgnoreRoute( "{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"System/{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
ok大功告成,运行结果如下
最后呢再看hibernate的过程中无意发现了个Expression,不知道Nhibernate里面有没有这些内容,估计不会差很多,贴出来大家看看。
Expression.gt:对应SQL条件中的"field > value "。如:Expression.gt("salary", new Integer(5000))
Expression.ge:对应SQL条件中的"field >= value"。
Expression.lt:对应SQL条件中的"field < value"。
Expression.le:对应SQL条件中的"field <= value"。
Expression.between:对应SQL条件中的"between"。
Expression.like:对应SQL条件中的"field like value"。
Expression.in:对应SQL条件中的"field in …"。
Expression.eqProperty:用于比较两个属性之间的值,对应SQL条件中的"field = field"。如:Expression.eqProperty("Employee.id", "Group.eid");
Expression.gtProperty:用于比较两个属性之间的值,对应SQL条件中的"field > field"。
Expression.geProperty:用于比较两个属性之间的值,对应SQL条件中的"field >= field"。
Expression.ltProperty:用于比较两个属性之间的值,对应SQL条件中的"field < field"。
Expression.leProperty:用于比较两个属性之间的值,对应SQL条件中的"field <= field"。
Expression.and:and关系组合。
Expression.ge:对应SQL条件中的"field >= value"。
Expression.lt:对应SQL条件中的"field < value"。
Expression.le:对应SQL条件中的"field <= value"。
Expression.between:对应SQL条件中的"between"。
Expression.like:对应SQL条件中的"field like value"。
Expression.in:对应SQL条件中的"field in …"。
Expression.eqProperty:用于比较两个属性之间的值,对应SQL条件中的"field = field"。如:Expression.eqProperty("Employee.id", "Group.eid");
Expression.gtProperty:用于比较两个属性之间的值,对应SQL条件中的"field > field"。
Expression.geProperty:用于比较两个属性之间的值,对应SQL条件中的"field >= field"。
Expression.ltProperty:用于比较两个属性之间的值,对应SQL条件中的"field < field"。
Expression.leProperty:用于比较两个属性之间的值,对应SQL条件中的"field <= field"。
Expression.and:and关系组合。
本文转自 BruceAndLee 51CTO博客,原文链接:http://blog.51cto.com/leelei/325559,如需转载请自行联系原作者