可能重复:
How can I accomplish this type of URL in ASP.Net MVC2?
我想创建HTML链接,如:
/Auctions/Clothes
/Auctions/Electronics
/Auctions/Real Estate
以下是我构建链接的方式:
<li>@Html.ActionLink("Ropa", "Index", "Anuncios", new { category = "Ropa" }, new { })</li>
<li>@Html.ActionLink("Libros", "Index", "Anuncios", new { category = "Libros" }, new { })</li>
问题是链接的使用方式如下:
http://localhost:8589/Anuncios?category=Libros
我希望我的网址看起来很漂亮,因此我希望上面的内容如下:
/Anuncios/Libros
有关如何解决此问题的任何建议?这是ActionResult方法,为了澄清,这正是我想要它做的。它有效,除了URL太可怕了。
public ActionResult Index(string category)
{
AuctionRepository auctionRepo = new AuctionRepository();
var auctions = auctionRepo.FindAllAuctions().Where(a => a.Subcategory.Category.Name == category);
return View(auctions);
}
答案 0 :(得分:0)
请查看此问题以实现您的要求。
修改强>
创建一个新的HTML帮助器,您将用它来呈现这样的菜单
public static class MyMenuHelper {
public static string MyMenu(this HtmlHelper helper) {
List<Category> categories = GetCategories();
foreach ( Category c in categories ) {
helper.RouteLink( c.Name, "AuctionCategoryDetails", new { categoryName = c.Name } );
}
}
}
最后在你的_Layout页面中使用它
@Html.MyMenu
答案 1 :(得分:-1)
您需要添加一些路由,以便MVC知道您希望链接看起来如何。它不像它可以读你的想法,或煮咖啡。
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Anuncios", // Route name
"Anuncios/{category}", // URL with parameters
new { category = "Index" } // Parameter defaults
);
}