ASP.NET MVC: url routing vs querystring

后端 未结 3 1500
春和景丽
春和景丽 2020-12-07 21:11

I have a page routed like /Comments/Search/3 where i search and display all the comments of the thread \"3\".

I\'m adding a sort function (by date, auth

相关标签:
3条回答
  • 2020-12-07 21:36

    ASP.NET MVC will handle that automatically in the query string case. You just add a string sort parameter to your action.

    Which is better? Personally, I use the path to control the contents being displayed and querystring to control the presentation (how it's displayed, formatted, ...). So, for sorting, I'd go with the querystring method. But I don't think there's a technical disadvantage in either approach.

    0 讨论(0)
  • 2020-12-07 21:40

    Your best bet is to add a routing rule to handle it. There's a handy article on it here:

    http://aspalliance.com/1525_ASPNET_MVC_Framework_Part_2_URL_Routing.2

    Then your URL would read /Comments/Search/3/Sort/Author

    0 讨论(0)
  • 2020-12-07 21:50

    I prefer: /Comments/Search/3?sort=author. The querystring is a good place to pass in programmatic parameters, especially if the parameter (like in this case) is not important for SEO purposes. If the parameter had some semantic meaning as a search term, the first URL would be better.

    In a controller method you can use something like this:

    public ActionResult Search(int id, string sort)
    

    ASP.NET MVC will automatically wire up querystring values to the parameters of your method.

    Use the following route

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

    /Comments/Search/3?sort=author will call Search(3, "author")

    /Comments/Search/3 will call Search(3, null)

    Keep in mind that id is mandatory so this url will fail: /Comments/Search

    0 讨论(0)
提交回复
热议问题