asp.net-mvc-5 - 是否可以将 T4​​MVC 与属性路由(RoutePrefix/Route)一起使用?

标签 asp.net-mvc-5 t4mvc

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 - 是否可以将 T4​​MVC 与属性路由(RoutePrefix/Route)一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25047049/

相关文章:

c# - 在azure中部署MVC5应用程序

javascript - 如何在 ASP.NET 中使用 jQuery 来改变 'li' 的颜色?

asp.net-mvc-5 - 无法匹配任何路由 url 段 Visual Studio 2015

javascript - 正确使用调用c#函数的引导开关(T4MVC/Entity Framework)

constructor - t4mvc : Cannot inherit a controller class which has no default constructor?

asp.net-mvc - AspNet Identity 中的个人资料图像

c# - 如何让 T4MVC 重新生成 .generated.cs 文件?

model-view-controller - 将 T4MVC 与构建脚本一起使用

asp.net-mvc - 来自基本 Controller 的 RedirectToAction

asp.net-mvc-5 - 在 Web 应用程序中连接到 CRM 的最佳实践