Подтвердить что ты не робот

Отправка нескольких параметров в действия в ASP.NET MVC

Я хотел бы отправить несколько параметров в действие в ASP.NET MVC. Мне также хотелось бы, чтобы URL-адрес выглядел следующим образом:

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

вместо:

http://example.com/products/item.aspx?id=2

Я хотел бы сделать то же самое и для отправителя, вот текущий URL:

http://example.com/products/item.aspx?id=2&sender=1

Как выполнить как с С# в ASP.NET MVC?

4b9b3361

Ответ 1

Если вы в порядке с передачей вещей в строке запроса, это довольно просто. Просто измените метод Action, чтобы взять дополнительный параметр с соответствующим именем:

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

Стало бы:

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

ASP.NET MVC будет выполнять всю необходимую для вас работу.

Если вам нужен чистый URL-адрес, вам просто нужно добавить новый маршрут в Global.asax.cs:

// will allow for Products/Item/2/1
routes.MapRoute(
        "ItemDetailsWithSender",
        "Products/Item/{id}/{sender}",
        new { controller = "Products", action = "Item" }
);

Ответ 2

Если вам нужен симпатичный URL-адрес, добавьте следующее в 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+", [email protected]"[0-9]" } //constraint
);

И затем для использования необходимых действий:

public ActionResult showItem(int id)
{
    //view stuff here.
}

public ActionResult showItem(int id, int sender)
{
    //view stuff here
}

Ответ 3

вы можете использовать любое правило маршрута, например:

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

также вы можете использовать get params как :baseUrl?param1=1&param2=2

и проверьте эту ссылку, я надеюсь, что это поможет вам.