1

我想创建一个路由来访问我的类别,如下所示:/category/{id}而不是/category/details/{id}.

我已经尝试了很多可能的例子

routes.MapRoute(
    "Category",
    "category/{id}",
    new { controller = "category", action = "details", id = UrlParameter.Optional },
    new string[] { "Project.Controllers" }
);

但它似乎不起作用。有人可以帮我弄这个吗?

这是我的控制器与动作

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Project.Controllers
{
    public class CategoryController : Controller
    {
        public ActionResult Details(string id)
        {
            return Content(id);
        }
    }
}
4

3 回答 3

3

我做的一切都是正确的,我只是把它放在我的默认路由下面,需要把新的路由放在默认路由之上

于 2012-09-19T15:11:18.287 回答
2

乍一看它是正确的,但你也可以有其他路线,这取决于位置。使用 Glimpse 调试您的应用程序: NuGet Package of the Week #5 - 使用 Glimpse 调试 ASP.NET MVC 应用程序

于 2012-09-19T15:00:43.123 回答
0

我刚刚在我的本地机器上尝试过 localhost/Category/Details/1

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Category", action = "Details", id = UrlParameter.Optional     } // Parameter defaults
        );



public class CategoryController : Controller
{
    //
    // GET: /Category/

    public ActionResult Details(string id)
    {
        return View();
    }

}

还是你在做 HttpGet 或 HttpPost?

于 2012-09-19T15:04:33.763 回答