Sending multiple parameters to Actions in ASP.NET MVC

后端 未结 3 1049
温柔的废话
温柔的废话 2021-02-05 06:08

I\'d like to send multiple parameters to an action in ASP.NET MVC. I\'d also like the URL to look like this:

http://example.com/products/item/2

相关标签:
3条回答
  • 2021-02-05 06:19

    If you want a pretty URL, then add the following to your global.asax.cs.

    routes.MapRoute("ProductIDs",
        "Products/item/{id}",
        new { controller = Products, action = showItem, id="" }
        new { id = @"\d+" }
     );
    
    routes.MapRoute("ProductIDWithSender",
       "Products/item/{sender}/{id}/",
        new { controller = Products, action = showItem, id="" sender="" } 
        new { id = @"\d+", sender=@"[0-9]" } //constraint
    );
    

    And then to use the needed actions:

    public ActionResult showItem(int id)
    {
        //view stuff here.
    }
    
    public ActionResult showItem(int id, int sender)
    {
        //view stuff here
    }
    
    0 讨论(0)
  • 2021-02-05 06:23

    If you're ok with passing things in the query string, it's quite easy. Simply change the Action method to take an additional parameter with a matching name:

    // Products/Item.aspx?id=2 or Products/Item/2
    public ActionResult Item(int id) { }
    

    Would become:

    // Products/Item.aspx?id=2&sender=1 or Products/Item/2?sender=1
    public ActionResult Item(int id, int sender) { }
    

    ASP.NET MVC will do the work of wiring everything up for you.

    If you want a clean looking URL, you simply need to add the new route to Global.asax.cs:

    // will allow for Products/Item/2/1
    routes.MapRoute(
            "ItemDetailsWithSender",
            "Products/Item/{id}/{sender}",
            new { controller = "Products", action = "Item" }
    );
    
    0 讨论(0)
  • 2021-02-05 06:39

    you can use any route rule for example:

    {controller}/{action}/{param1}/{param2}
    

    also you can use get params like :baseUrl?param1=1&param2=2

    and check this link, i hope it will help you.

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