当我导航到我的路线时,我找不到404

时间:2017-03-14 11:42:54

标签: asp.net-mvc

您好我的项目中有一个名为help的Controller,如下所示:

    public class HelpController : Controller
    {
        // GET: Help
        public string Index()
        {
            return "test help";
        }
    }

这是我的route.config文件

using System.Web.Mvc;
using System.Web.Routing;

namespace ProductsApp.App_Start
{
    public class RouteConfig
    {
        public static void RegisterRoutes (RouteCollection routes)
        {
            RouteTable.Routes.RouteExistingFiles = true;

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapMvcAttributeRoutes();

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

我的Global.asax

using ProductsApp.App_Start;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Routing;

namespace ProductsApp
{
    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
    }
}

当我导航到/ Help / Index时,出现404服务器错误。如果我导航到/帮助。我的应用程序实例化Home控制器。可能有什么不对?

1 个答案:

答案 0 :(得分:-1)

你有区域>你的网页内的HelpPage?也许这是beign而不是你的控制器。

您可以使用它们实现属性路由,您可以指定该控制器和方法的路由,而不是RouteConfig。

在我看来,这种方法使代码更易于理解和易于理解。您甚至可以使用它来制作控制器的版本。

这是如何实现属性路由的例子:

[RoutePrefix("api/v2/network/account")]
public class AccountController : ApiController
{
    [Route("{login}"), HttpGet]
    public Account GetAccountByLogin(string login)
    {
        // Code Logic Here
    }
}

你怎么称呼这种方法?您不会输入 yourapi / api / Account / GetAccountByLogin / userlogin ,因为您的api或mvc不会识别该网址,而是在您输入时识别它: yourapi / api / V2 /网络/帐户/用户登陆即可。

这些墨水可以帮助您:
对于地区:

https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas

对于属性路由: https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2