MVC 5级网站属性的路由不工作(MVC 5 Web Attribute Routing is no

2019-09-29 04:36发布

我实现了属性在我的应用程序,之后路由,当我开始什么也没有工作按计划进行。 只有Json的结果按预期工作休息不工作。

 [RoutePrefix("ProductCategory")]
    public class CategoryController : Controller
    {
      [Route("CategoryMain")]
        // GET: /Category/
        public ActionResult Index()
        {
            var cat = categoryService.GetCategories();

            if (Request.IsAjaxRequest())
            {
                return PartialView("Index", cat);
            }
            return View("Index", cat);
        }
    }

错误

在“/”应用程序的服务器错误。 无法找到该资源。 说明:HTTP 404。您正在寻找(或它的一个依赖)可能已被删除的资源,有其名称更改,或者暂时不可用。 请检查以下URL并确保其拼写正确。

请求的URL:/产品分类/ MainIndex我也试过只指数即使不习惯现在的工作

但是,如果该方法是JsonResult它将返回我的数据以JSON格式。 它不工作的任何其他ActionResults 我RouteConfig

 public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapMvcAttributeRoutes();
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Category", action = "Index", id = UrlParameter.Optional }
            );


        }

我webapiConfig

public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();

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

我的全球

 AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);

        // Autofac and Automapper configurations
        Bootstrapper.Run();

Answer 1:

鉴于路由前缀和路由以下

[RoutePrefix("ProductCategory")]
public class CategoryController : Controller {
    [HttpGet]
    [Route("CategoryMain")] // Matches GET ProductCategory/CategoryMain
    public ActionResult Index() {
        var cat = categoryService.GetCategories();
        if (Request.IsAjaxRequest()) {
            return PartialView("Index", cat);
        }
        return View("Index", cat);
    }
}

所请求的URL必须

ProductCategory/CategoryMain

对于CategoryController.Index行动



文章来源: MVC 5 Web Attribute Routing is not working