Asp.net mvc 类型为';DefaultInlineConstraintResolver';无法解析以下内联约束:
我想使用属性路由。我的代码是:Asp.net mvc 类型为';DefaultInlineConstraintResolver';无法解析以下内联约束:,asp.net-mvc,asp.net-web-api,asp.net-mvc-routing,Asp.net Mvc,Asp.net Web Api,Asp.net Mvc Routing,我想使用属性路由。我的代码是: [Route("api/ws/{parm: myClass}")] public void Post(myClass parm) { ... } 这导致WebApiConfig.Register中出现异常,如下所示: “DefaultInlineConstraintResolver”类型的内联约束解析程序无法解析以下内联约束:“myClass” 这一错误的原因可能是什么 myClass是一个复杂的对象,即不是一个简单的值类型,而是一个具有多个属性的类。允许使用这
[Route("api/ws/{parm: myClass}")]
public void Post(myClass parm)
{ ... }
这导致WebApiConfig.Register中出现异常,如下所示:
“DefaultInlineConstraintResolver”类型的内联约束解析程序无法解析以下内联约束:“myClass”
这一错误的原因可能是什么
myClass
是一个复杂的对象,即不是一个简单的值类型,而是一个具有多个属性的类。允许使用这些参数吗?不,不能在路由属性中使用对象;有一个包含允许的属性类型的完整列表的表。由于您无法通过URL传递复杂对象(这是路由的唯一职责),因此不清楚您希望从中实现什么。复杂对象可以通过HTTP POST发布,并最终成为操作方法的参数,但URL与此无关(当然,除了选择要发布到的正确操作方法之外)。显示一个示例,说明myClass
的外观以及您希望如何使用与路由参数相关的属性。根据类的复杂程度,您可以创建一个日志,并在日志正文中传递数据。我错误地认为参数重载可以用来匹配接收到的不同数据类型。我不完全理解routes是否也适用于post正文中的数据。