如何在ASP.NETMVC2中实现这种类型的URL?

如何在ASP.NETMVC2中实现这种类型的URL?,asp.net,asp.net-mvc,url,Asp.net,Asp.net Mvc,Url,我有一张名为Categories的表格。我希望用户从类别列表中单击,然后加载该类别中所有拍卖的列表 很简单,对吧 我可以为每个类别创建一个动作,比如: public ActionResult Cellphones() public ActionResult Electronics public ActionResult Clothes public ActionResult Cars public ActionResult RealEstate 这将生成类似于:/Auctions/cloth和

我有一张名为Categories的表格。我希望用户从类别列表中单击,然后加载该类别中所有拍卖的列表

很简单,对吧

我可以为每个类别创建一个动作,比如:

public ActionResult Cellphones()
public ActionResult Electronics
public ActionResult Clothes
public ActionResult Cars
public ActionResult RealEstate
这将生成类似于:/Auctions/cloth和/Auctions/RealEstate的URL。正是我要找的

问题是,这需要手动修补。当我添加一个类别时,我必须手动创建一个新操作,然后为它创建一个新视图


有更好的方法吗?

是的,它被称为URL路由。将类别映射到单个
AuctionController
操作,该操作根据URL中的内容动态提供和显示类别数据


有一个教程介绍了基础知识。

创建一个ActionResult:

public class AuctionController : Controller
{
    public ActionResult AuctionCategoryDetails(string categoryName)
    {
        var model = repository.GetAuctionsForCategory(categoryName);
        return View(model);
    }
}
然后创建一条路线:

routes.MapRoute(
    "AuctionCategoryDetails",
    "Auctions/{categoryName}",
    new { controller = "Auction", action = "AuctionCategoryDetails" });
因此,当您显示类别列表(而不是单个详细信息)时



嗨,谢谢分享这个链接。恐怕我真的不明白如何使用路由来实现我的目标。麻烦你再给我一些指导好吗?谢谢。奇怪的是,在过去的几天里,堆栈上的代码样本被搞砸了。是的,没错!我要把它做成我要找的东西。非常感谢你的帮助!:)@RPM1984:我最近看到的问题都与实时预览有关。他们在实际的帖子中表现得很好,但是看看我的答案。前两个代码示例是混乱的(没有语法突出显示),而后两个则很好。奇怪。@RPM1984:哇,那样的话我不知道。两次试图弄乱空白,似乎没有帮助。也许问问梅塔?
<% foreach (var category in Model.Categories) { %>
   <%: Html.RouteLink("Category Details", "AuctionCategoryDetails", new { categoryName = category.CategoryName });
<% } %>
<a href="/Auctions/Clothes">Category Details</a>
<a href="/Auctions/RealEstate">Category Details</a>