asp.net开源mvc框架 Vici的最大特征是支持ASP.NET2.0和IIS不需要额外的设置
例子的下载地址http://viciproject.com/wiki/projects/mvc/Download
现在大把大把的ASP.NET MVC框架都需要 iis进行额外的设置 而vici却不需要,为什么呢
看看他的配置文件Web.config
<?xml version="1.0"?> <configuration> <appSettings> <add key="Mvc.ApplicationClass" value="ViCiCore.Application,ViCiCore" /> <add key="Mvc.TemplatePath" value="Content/templates" /> </appSettings> <connectionStrings /> <system.web> <compilation debug="true"> </compilation> <globalization requestEncoding="utf-8" fileEncoding="utf-8" /> <httpModules> <add name="MvcModule" type="Vici.Mvc.HttpModule, Vici.Mvc" /> </httpModules> <httpHandlers> <add verb="*" type="Vici.Mvc.MVCHandler, Vici.Mvc" path="ProMesh.axd" /> </httpHandlers> <!-- The <authentication> section enables configuration of the security authentication mode used by ASP.NET to identify an incoming user. --> <authentication mode="Windows" /> <!-- The <customErrors> section enables configuration of what to do if/when an unhandled error occurs during the execution of a request. Specifically, it enables developers to configure html error pages to be displayed in place of a error stack trace. <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> <error statusCode="403" redirect="NoAccess.htm" /> <error statusCode="404" redirect="FileNotFound.htm" /> </customErrors> --> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <directoryBrowse enabled="true" /> <modules runAllManagedModulesForAllRequests="true"> <add name="MvcModule" type="Vici.Mvc.HttpModule, Vici.Mvc" /> </modules> <handlers> <add name="MvcHandler" preCondition="integratedMode" verb="*" path="ProMesh.axd" type="Vici.Mvc.MVCHandler, Vici.Mvc" /> </handlers> </system.webServer> </configuration>
注意appSettings节点,httpModules节点,httpHandlers节点
<appSettings> <add key="Mvc.ApplicationClass" value="ViCiCore.Application,ViCiCore" /> <add key="Mvc.TemplatePath" value="Content/templates" /> </appSettings> <httpModules> <add name="MvcModule" type="Vici.Mvc.HttpModule, Vici.Mvc" /> </httpModules> <httpHandlers> <add verb="*" type="Vici.Mvc.MVCHandler, Vici.Mvc" path="ProMesh.axd" /> </httpHandlers>
可见 vici是基于httpModules和httpHandlers的
<appSettings>节点中 第一个对应一个类 第二个对应模板的文件夹
看看ApplicationClass这个类有设么东西
public static class Application { public static void Init() { WebAppConfig.Router.AddDefaultRoutes(".aspx"); // ".aspx" } }
是一个初始化的,用来初始化默认路由 和 对什么类型的后缀名进行路由 选择.aspx就不用iis而外的设置
默认的路由和微软的mvc差不多 有以下几种
URL | Controller | Action | Parameters | |
---|---|---|---|---|
~/{controller}/{action}/{id} | {controller} | {action} | id = {id} | |
~/{controller}/{action} | {controller} | {action} | ||
~/{controller} | {controller} | Run |
vici的配置还是蛮简单的