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的配置还是蛮简单的