Asp.net mvc ASP.NET MVC路由在根目录下提供目录列表

Asp.net mvc ASP.NET MVC路由在根目录下提供目录列表,asp.net-mvc,routing,Asp.net Mvc,Routing,我有以下路线: // Submission/* routes.MapRoute( "Submission", "Submission/{form}", new { controller = "Submission", action = "Handle", form = "" }); // /<some-page> routes.MapRoute( "Pages", "{page}", new { controller = "Main"

我有以下路线:

// Submission/*
routes.MapRoute(
    "Submission",
    "Submission/{form}",
    new { controller = "Submission", action = "Handle", form = "" });

// /<some-page>
routes.MapRoute(
    "Pages",
    "{page}",
    new { controller = "Main", action = "Page", page = "Index" });
问题是,至少在测试期间,localhost/给出了一个dir列表,而不是路由到Main/Index.aspx。真正的问题是它禁用了我的站点地图菜单,因为URL与Web.SiteMap文件中定义的内容不匹配。然而,localhost/Index确实为我提供了正确的视图


奇怪的是,这在Mono/XSP上的效果与预期的一样。

如果您使用Visual Studio Dev Server测试它,那么它应该可以正常工作。我刚才试过了

在IIS上,除非启用,否则“localhost/”和“localhost/Index”都不能工作

这对我来说很有效。你可能在文章中遗漏了一些不明显的东西

顺便说一句,您的行动可以改进:

public ActionResult Page(string page)
{
    return View(page);
}

编辑:是我的示例项目。

如果您使用Visual Studio Dev Server测试它,那么它应该可以正常工作。我刚才试过了

在IIS上,除非启用,否则“localhost/”和“localhost/Index”都不能工作

这对我来说很有效。你可能在文章中遗漏了一些不明显的东西

顺便说一句,您的行动可以改进:

public ActionResult Page(string page)
{
    return View(page);
}

编辑:是我的示例项目。

我终于找到了答案。有两件事(可能)出了差错。第一,项目必须具有MVC项目类型GUID。看看有没有什么想法——尽管这篇文章的主题不太明确。第二,VisualStudio2008需要SP1来更新ASP.NET开发服务器;SP1之前的版本没有启动Global.asax,也没有Default.aspx页面。

我终于找到了答案。有两件事(可能)出了差错。第一,项目必须具有MVC项目类型GUID。看看有没有什么想法——尽管这篇文章的主题不太明确。第二,VisualStudio2008需要SP1来更新ASP.NET开发服务器;SP1之前的版本不会启动Global.asax而没有Default.aspx页面。

至少对提示投了赞成票。我想不出我错过了什么。。。Mono似乎很喜欢它。你能附上你的项目,让我可以在本地测试吗?人力资源管理。。。存档文件未正确解压缩。哦,伙计,对不起。我只能在周一重新加载(我现在在家,这里没有任何开发工具)。但我所做的是:1。创建默认的MVC应用程序。2.添加了您提供的MainController。3.已删除Global.asax.cs中的所有路由,并将其替换为您的路由。4.经过测试,它确实有效。至少对小费投了赞成票。我想不出我错过了什么。。。Mono似乎很喜欢它。你能附上你的项目,让我可以在本地测试吗?人力资源管理。。。存档文件未正确解压缩。哦,伙计,对不起。我只能在周一重新加载(我现在在家,这里没有任何开发工具)。但我所做的是:1。创建默认的MVC应用程序。2.添加了您提供的MainController。3.已删除Global.asax.cs中的所有路由,并将其替换为您的路由。4.经过测试,确实有效。