У меня есть действие, берущее два GUID:
public class MyActionController : Controller
{
//...
public ActionResult MoveToTab(Guid param1, Guid param2)
{
//...
}
}
Я хотел бы, чтобы следующий URI отобразился на действие:
/myaction/movetotab/1/2
... с 1 соответствием param1 и 2 к param2.
На что будет похож маршрут, и действительно ли возможно отобразить аргументы параметрам с типом Гуида?
Да, можно сопоставить ваши параметры в 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 }
);
Вы можете принять два ваших 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);
}