1、以下4个DLL为MVC框架引用,在程序中将引用属性设为复制到本地。
System.ComponentModel.DataAnnotations.dll System.Web.Abstractions.dll System.Web.Mvc.dll System.Web.Routing.dll
2、按如下修改,并在开发时注意所有链接使用Url.Action方法来得到,将使程序既可以在IIS5、6下运行,又能在IIS7下保持URL的美观
Web.config的配置项按如下修改:
<appSettings> <add key="controllerSuffix" value=".aspx"/> </appSettings> <authentication mode="Forms"> <forms loginUrl="~/Account.aspx/LogOn" timeout="2880"/> </authentication>
在根目录新建一个Default.aspx,此页只用来转向。内容如下:
<%@ Page Language="C#" AutoEventWireup="true" %>
<%
string url = Request.Url.ToString();
string query = string.Empty;
if (url.IndexOf("?") >= 0)
query = url.Substring(url.IndexOf("?"));
string controllerSuffix = ConfigurationManager.AppSettings["controllerSuffix"];
Response.Redirect("/Home" + controllerSuffix + "/Index" + query);
%>
路由注册按如下方法写:
private static string ControllerSuffix = ConfigurationManager.AppSettings["ControllerSuffix"]; public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}" + ControllerSuffix + "/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults ); }
3、以上设置在IIS6下能运行,但不能像IIS7下有那样美观的URL,要想做到还需要进一步设置(虚拟主机就没这权限了)
在站点属性中的“主目录”--》“配置”。在下方的“通配符应用程序映射”中插入一个映射,可执行文件交给.NET的“aspnet_isapi.dll”,默认地址一般在“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll”