T4MVC 是否以某种方式支持基于属性的路由?
我已经申请了 RoutePrefixAttribute
到我的 MVC 5 Controller 和 Route
归因于我的行动。就目前而言,T4MVC 似乎没有提供基于这些属性的路由。它提供的路由是/Area/Controller/Action.
的基于约定的路由。
文件夹结构为:
/
Areas
Ratio
Controllers
RatioSet
PresetGroupController.cs
Views
RatioSet
GroupDetails.cshtml
Controller :
[RoutePrefix("Ratio/RatioSet/Preset/Group")]
public partial class PresetGroupController
{
[Route("Details")]
public virtual ActionResult Details()
{
//.....
return View(MVC.Ratio.RatioSet.Views.GroupDetails, model);
}
}
现在,如果我尝试以下操作:
return RedirectToAction(MVC.Ratio.PresetGroup.Details());
我收到 404 错误,因为请求的 URL 是:
<app_root>/Ratio/PresetGroup/Details
这是“默认”路由,而不是正确的属性指定:
<app_root>/Ratio/RatioSet/Preset/Group/Details
那么,T4MVC 是否仅适用于从文件夹结构推断的基于约定的路由,而不适用于通过属性指定的任何路由?
最佳答案
我知道这是一个老问题,但我遇到了同样的问题并最终修复了它,将 RouteArea 属性添加到 Controller 。
像这样的东西:
[RouteArea("Ratio")]
[RoutePrefix("Ratio/RatioSet/Preset/Group")]
public partial class PresetGroupController
{
[Route("Details")]
public virtual ActionResult Details()
{
//.....
return View(MVC.Ratio.RatioSet.Views.GroupDetails, model);
}
}
关于asp.net-mvc-5 - 是否可以将 T4MVC 与属性路由(RoutePrefix/Route)一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25047049/