ASP.NET MVC Маршрутизация двух GUID

У меня есть действие, берущее два GUID:

public class MyActionController : Controller
{
  //...

  public ActionResult MoveToTab(Guid param1, Guid param2)
  {
    //...
  }
}

Я хотел бы, чтобы следующий URI отобразился на действие:

/myaction/movetotab/1/2

... с 1 соответствием param1 и 2 к param2.

На что будет похож маршрут, и действительно ли возможно отобразить аргументы параметрам с типом Гуида?

5
задан Robert Harvey 11 January 2010 в 16:47
поделиться

2 ответа

Да, можно сопоставить ваши параметры в System.guid

routes.MapRoute(
    "MoveToTab",
    "{controller}/{action}/{param1}/{param2}",
    new { controller = "MyAction", action = "MoveToTab",
        param1 = System.Guid.Empty, param2 = System.Guid.Empty }
);

или

routes.MapRoute(
    "MoveToTab2",
    "myaction/movetotab/{param1}/{param2}",
    new { controller = "MyAction", action = "MoveToTab",
        param1 = System.Guid.Empty, param2 = System.Guid.Empty }
);
8
ответ дан 13 December 2019 в 19:27
поделиться

Вы можете принять два ваших GUID как строки и преобразовать их в реальные объекты GUID, используя конструктор GUID, который принимает значение строки. Используйте маршрут, который предоставляет eu-ge-ne.

routes.MapRoute(
    "MoveToTab",
    "myaction/movetotab/{param1}/{param2}",
    new { controller = "MyAction", action = "MoveToTab", param1 = "", param2 = "" }
);

  public ActionResult MoveToTab(string param1, string param2)
  {
    Guid guid1 = new Guid(param1);
    Guid guid2 = new Guid(param2);
  }
3
ответ дан 13 December 2019 в 19:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: