【问题标题】:ASP.NET WEBAPI add custom routeASP.NET WEBAPI 添加自定义路由
【发布时间】:2013-04-05 19:09:03
【问题描述】:

我已经启动并运行了新的 .NET WebAPI,我正在尝试向我的项目添加一条新路由,以便我可以看到 SettingsController 的运行情况。我已在 RegisterRoutes 方法中将路由添加到 Global.asax 文件,但是当我尝试浏览到 sampleUrl:12345/settings/index 时收到 404 错误。我可以看到:sampleUrl:12345/home/index 没有问题。

全球.asax

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

    routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );

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

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

我的SettingsController 中是否需要有一个ActionResult Index()

【问题讨论】:

    标签: asp.net asp.net-mvc-3 asp.net-web-api


    【解决方案1】:

    您的设置路线是多余的。您可能缺少的是设置控制器中的索引方法。

    【讨论】:

    • 好的,所以从 Global.asax 中删除设置的路由。我的 Views 文件夹中有一个名为 Settings 的文件夹,并且该文件夹中有一个 Index.cshtml 文件。是这个意思吗?
    • 我有一个默认执行的 ProductsController。这没有问题。 ProductsController 中没有 Index 方法。然而,在 HomeController 中有一个。我正在使用 WebAPI 入门项目。
    • 我没有在这台笔记本电脑上安装 Visual Studio,但如果你有 5 分钟的时间,请扫一扫 this article
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    相关资源
    最近更新 更多