asp mvc 2区域

时间:2011-02-02 05:24:50

标签: asp.net-mvc-2

我可以禁用编译路由和其他asax文件吗? 在应用程序运行时已经改变它们

1 个答案:

答案 0 :(得分:0)

没有。任何扩展名为.cs的东西(如global.asax.cs)都必须编译。你真的想做什么?编译器非常快。如果您只是尝试调试路线,可以使用something like the route debugger(精彩,精彩的工具)。

根据评论进行更新

您的评论表明您希望在已编译代码之外存储路由。

This link describes how to store them in a database,我觉得这是最好的地方。这个例子是从2008年开始的,所以它可能与MVC3不兼容,但它应该让你知道从哪里开始。

如果您不想经历构建编辑器的麻烦(或者更糟糕的是,在数据库中手动输入它们),则可以使用XML文件。 This link describes loading routes from an XML file

这些技术几乎都是一样的:

  • 创建一个可以从商店加载路线数据的类。最简单的可能是:
    1. 路线名称
    2. 路线字符串(即“{controller} / {action} / {id}”

但您可能希望包含控制器名称,操作名称等的默认值。

  • 在Application_Start中,使用该类加载和注册路由:

...

List<Route> routes = MyRouteLoader.Load(routeXmlFileName);
foreach(Route route in routes)
{
    routes.add(route);
}

唯一的半复杂部分是从XML加载路由,但您可以使用System.Xml.Serialization.XmlSerializer类通过少量自定义代码读取和写入XML路由。