我们如何将默认文件指向 index.html ,而不是默认操作主页/索引
答案 0 :(得分:1)
在IIS中,将默认文档配置为列表顶部的index.html?
或者您可以将IgnoreRoute添加到global.asax
public static void RegisterRoutes(RouteCollection routes) { routes.RouteExistingFiles = true; routes.IgnoreRoute("{file}.html"); ...
答案 1 :(得分:1)
我发现在IIS 6下,当您使用通配符catchall将大多数请求路由到MVC时,至少会影响默认文档拾取。
我的解决方案(仅针对我的根路径)如下: (在global.asax中)
if(Request.Path ==“”|| Request.Path ==“/”) { Response.Redirect(Request.Path +“index.htm”,true); 返回; }
这会获取请求并将其重定向到正确的位置。使用Context.RewritePath(Request.Path +“index.htm”)重写路径;而不是重定向也似乎工作。 进一步修改可能是查看路径的最后一个字符是否为“/”,如果是,则检查相应的文件(thatpath / index.htm)是否存在,如果确实存在则重定向...这将有效地允许MVS保持在提供逻辑的同时工作,因此任何存在的具有类似默认文档的文件夹都可以提供逻辑。
答案 2 :(得分:0)
您可以通过在项目的Global.asax.cs
文件中添加或更改路径来更改默认控制器操作。
在模板中,包括以下内容:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = null });
如果您希望默认指向不同的控制器操作,只需更改上面第四行代码中匿名类型的值。
答案 3 :(得分:0)
我添加了
routes.IgnoreRoute("");
到我的路线配置。这会忽略根文件夹,如果你的root中有一个index.html文件,它就会被拿起来。