T4MVC没有为一个控制器生成一些操作

Ste*_*ory 3 t4mvc

我有一种情况,T4MVC正在生成所有内容(意味着intellisense显示所有区域/控制器/操作和所有编译),但是当我运行代码时,我收到T4MVC was called incorrectly运行时错误.

我已经调查了生成的文件并发现对于我的项目中的一个控制器,只有基类中的操作才会生成重写的存根操作.对于其他控制器,正在生成所有操作.它们都具有相同的设置,如下所述.

我有一个BaseController类有一些共享代码(并继承自Controller).在Controllers目录(项目的根目录)中,我有许多控制器,所有控制器都继承自BaseController.

然后我有几个区域.在每个区域中,我有相同的控制器,每个控制器都从根Controllers目录中的同名控制器继承.

运行T4MVC(版本2.6.54),一切正常,除了一个控制器.奇怪的是,intellisense适用于控制器,但在引用实际操作时(在ActionLink()调用中)会产生阻塞.

我手动将一个操作添加到生成的代码中,没有错误.

所以我的问题是,什么会导致T4MVC 为控制器生成所有代码?缺少的行为都是public virtual ActionResult,行动本身也很好.问题控制器在所有区域都有相同的问题.

一些缩写代码.

/Controllers/BaseController.cs

namespace MyProject.Controllers
{
    public abstract partial class BaseController : Controller
    {
        protected ISession session;

        public BaseController()
        {
        }

        // other shared methods/actions
    }
}
Run Code Online (Sandbox Code Playgroud)

/Controllers/ActivitiesController.cs(这是问题控制器)

namespace MyProject.Controllers
{
    public partial class ActivitiesController : BaseController
    {
        // for resolving concurrency exceptions
        private Activity userValues;
        private Activity databaseValues;

        public ActivitiesController() : base()
        {
            ViewBag.ControllerName = "Activities";
        }

        // this action is causing the problem used like
        <li>@Html.ActionLink("Activities", MVC.Areas.Module1.Activities.Index())</li> in a view
        public virtual ActionResult Index()
        {
            return View();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

/Areas/Module1/Controllers/ActivitiesController.cs.这是整个班级

namespace MyProject.Areas.Module1.Controllers
{
    public partial class ActivitiesController : MyProject.Controllers.ActivitiesController
    {
        public ActivitiesController() : base()
        {
            base.currentModule = Modules.Module1;            
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*ina 6

如果遇到其他任何人,我遇到了类似的问题,并产生了运行时错误消息,但情况稍有不同.它位于ActionResult方法结尾的RedirectToAction语句中:

RedirectToAction(Edit(id));
Run Code Online (Sandbox Code Playgroud)

纠正错误后,错误消失了:

RedirectToAction(MVC.[action name].Edit(id));
Run Code Online (Sandbox Code Playgroud)

错误消息不是很直观,重新运行自定义工具的建议并没有真正帮助.