作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为 Account 的 Controller ,其操作具有以下签名:
public ActionResult Verify(string userName, Guid authorisationToken);
我创建了一个链接来调用此操作:
/Account/Verify/sachin13/409bdaaa-0b65-4bb8-8695-6e430323d8f8
当我访问此链接时,出现以下错误:
The constraint entry 'Length' on the route with URL 'Account/{Verify}/{userName}/{authorisationToken}' must have a string value or be of a type which implements IRouteConstraint.
这就是我的 RegisterRoutes 方法在 Global.asax 中的样子:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } ,// Parameter defaults
new[] { "UI.Controllers" }
);
routes.MapRoute(
"AccountVerify",
"Account/{Verify}/{userName}/{authorisationToken}",
new { controller = "Account", action = "Verify", userName = "", authorisationToken = "" },
"UI.Controllers"
);
}
两个问题:
我是否做了任何不寻常的事情,或者我的方法是否符合标准实践?
这里出了什么问题?
谢谢
萨钦
最佳答案
你应该改变
“UI.Controllers”
到
new[] { "UI.Controllers"}
在你的第二条 route 。
如果您仅指定单个字符串(而不是数组),那么您会得到 MapRoute
函数的错误重载 - 而不是 MapRoute(RouteCollection, String, String, Object, String[ ])
接受命名空间列表作为最后一个参数,您将得到 MapRoute(RouteCollection, String, String, Object, Object)
,它期望约束作为最后一个参数。字符串“UI.Controllers”不是正确的约束规范 => 你会得到错误。
此外,@Pankaj 建议您的自定义路线应在默认路线之前进行,并且验证应不带“{}”。
完整代码:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"AccountVerify",
"Account/Verify/{userName}/{authorisationToken}",
new { controller = "Account", action = "Verify", userName = "", authorisationToken = "" },
new [] { "UI.Controllers" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } ,// Parameter defaults
new[] { "UI.Controllers" }
);
}
关于asp.net-mvc - MVC 路由错误 : The constraint entry 'Length' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8909356/
我是一名优秀的程序员,十分优秀!