我可以将路由参数约束到ASP.net MVC中的某种类型吗?

时间:2010-05-28 11:39:36

标签: asp.net-mvc routing constraints mvccontrib

我有以下路线:

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

有没有办法可以确保“affiliateId”是有效的Guid?我在我的网站的其他地方使用MVCContrib,我相当提供了一种实现这种约束的方法....我只是不知道它是什么!

2 个答案:

答案 0 :(得分:3)

您可以编写正则表达式约束:

routes.MapRoute(
    "Search",                                               // Route name
    "Search/{affiliateId}",                                 // URL with parameters
    new { controller = "Syndication", action = "Search" },   // Parameter defaults
    new { affiliateId = "SOME REGEX TO TEST GUID FORMAT" } // constraints
);

答案 1 :(得分:0)

我从来没有听说过这个。我担心如果你错误地在你的一个动作方法中使用了错误的affiliateId参数类型,会引起一些混乱。