如何在ASP.NETMVC2中实现这种类型的URL?
我有一张名为Categories的表格。我希望用户从类别列表中单击,然后加载该类别中所有拍卖的列表 很简单,对吧 我可以为每个类别创建一个动作,比如:如何在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和
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>