我正在使用带有 Asp.Net Mvc 4 RC 的 AttributeRouting 扩展。从同一个控制器调用 RenderAction 是可以的。但是当我从另一个控制器的视图中调用它时,我得到了“路由表中没有路由与提供的值匹配”异常。
PS:我已经测试了没有 AttributeRouting 的 Asp.Net MVC 4 RC。一切安好。
我正在使用带有 Asp.Net Mvc 4 RC 的 AttributeRouting 扩展。从同一个控制器调用 RenderAction 是可以的。但是当我从另一个控制器的视图中调用它时,我得到了“路由表中没有路由与提供的值匹配”异常。
PS:我已经测试了没有 AttributeRouting 的 Asp.Net MVC 4 RC。一切安好。
该问题与“区域”有关。您不能从另一个区域调用 RenderAction,您必须添加:
@{Html.RenderAction("Index", "Message", new { area = "" });}
我认为您已在 Global.asax 中用您自己的自定义路线替换了所有常规路线。
您能否将一般路线({controller}/{action}
)放回文件中?它应该工作。
如果这不起作用,那么您可能必须
[ChildActionOnly]
在您的操作中提供属性。