【问题标题】:Improving urls in asp.net mvc2改进asp.net mvc2中的url
【发布时间】:2011-04-05 14:28:03
【问题描述】:

改进网址

目前我在表单中有链接(显示产品信息):

http://localhost:XXXX/Products/?page=1

我想把它整理成表格:

http://localhost:XXXX/Products/Page1

我想我需要用routes.MapRoute 来做这件事,就像这样:

routes.MapRoute(null, "/Products/Page{page}", new {controller = "ProductController", action = "Index"});

这被放在默认路由之上(所以应该覆盖我被引导相信)

产品控制器如下所示:

    //
    // GET: /Products/
    public ActionResult Index([DefaultValue(1)] int page)
    {
        var productsToShow = //omitted for simplicity

        var viewModel = new ProductIndexViewModel
                            {
                                ProductList = //omitted for simplicity,
                                PagingInfo = new PagingInfo
                                                 {
                                                     CurrentPage = page,
                                                     ItemsPerPage = PageSize,
                                                     TotalItems = productsToShow.Count()
                                                 }
                            };

        //Passed to view as ViewData.Model (or simply Model)
        return View(viewModel);
    }

我做错了什么?

【问题讨论】:

    标签: c# asp.net-mvc visual-studio-2010 asp.net-mvc-2


    【解决方案1】:

    更改routes.MapRoute

    routes.MapRoute(null, "Products/Page{page}", new {controller = "Products", action = "Index"});
    

    【讨论】:

    • 正确 - 约定是所有控制器类都以单词Controller结尾。因此,路线不需要您将完整的单词添加到路线详细信息中,如上所述。所以就像@Akyegane 所说,controller = "Products" .. not "ProductsController"
    猜你喜欢
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    相关资源
    最近更新 更多