0

如何路由网址

 http://localhost:5330/Admin/

 http://localhost:5330/Admin/Index

正如我得到

HTTP Error 403.14 - Forbidden 

在尝试调用 @Url.Action("Index","Admin") 时将其重定向到

 `http://localhost:5330/Admin/`

并显示错误,但如果我去 url 并添加如下所示,它工作正常

http://localhost:5330/Admin/Index 
4

2 回答 2

0

------------ 更新试试这个,您可以根据您的特定需要添加自定义路线。只需复制 n 粘贴下面的代码并将其添加到您的 Routeconfig.cs 以满足您当前的要求。

routes.MapRoute(
        name: "Admin",
        url: "{controller}/{action}/{id}",
        defaults: new
        {
            controller = "Admin",
            action = "Index",
            id = UrlParameter.Optional
        }
    );

好像您已经在 IIS 上托管了您的网站/Web 应用程序,但您没有指定要加载的任何默认页面或没有启用目录浏览,或者请检查您的默认路由配置。

于 2014-10-21T09:12:15.997 回答
0

看起来您缺少默认值。在您的解决方案中,默认情况下有一个名为 的文件夹App_Start,其中包含一个RouteConfig.cs. 这将包含一个看起来像这样的类:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

action = "Index"它在对象中所说的那部分defaults是设置默认操作。当 URL 未指定 URL 时,它将查找名为Index(). 如果您更改了路线,请检查您是否仍然有这样的默认设置 - 并确保它们的顺序正确。路线是按照您指定的顺序检查的,因此您应该始终将最具体的路线放在顶部,然后将更一般的路线放在后面,以避免一般路线抓住应该去更具体的路线的东西。像这样的包罗万象的默认设置应该是您指定的最后一个。

于 2014-10-21T09:45:09.593 回答