T4MVC不会为一个控制器生成某些动作。
我遇到的情况是T4MVC会正确生成所有内容(这意味着intellisense显示了所有区域/控制器/动作以及所有编译内容),但是当我运行代码时,出现了“ 0”运行时错误。
我调查了生成的文件,发现对于我的项目中的一个控制器,只有基类中的操作才生成覆盖的存根操作。对于其他控制器,将生成所有动作。它们都具有相同的设置,如下所述。
我有一个带有一些共享代码的has1ѭ类(并继承自
Controller
)。在Controllers
目录(项目根目录)中,我有许多控制器,所有控制器都继承自BaseController
。
然后,我有几个区域。在每个区域中,我都有相同的控制器,每个控制器都从根控制器目录中具有相同名称的控制器继承。
运行T4MVC(版本2.6.54),除一个控制器外,其他所有组件都可以正常运行。奇怪的是,智能感知对控制器起作用,但是当引用实际动作时(在“ 5”调用中),它会阻塞。
我手动将一个操作特别添加到了生成的代码中,没有错误。
所以我的问题是,什么将导致T4MVC无法为控制器生成所有代码?缺少的动作均为“ 6”,并且动作本身可以正常工作。问题控制器在所有区域中都有相同的问题。
一些缩写代码。
/Controllers/BaseController.cs
namespace MyProject.Controllers
{
public abstract partial class BaseController : Controller
{
protected ISession session;
public BaseController()
{
}
// other shared methods/actions
}
}
/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();
}
}
}
/Areas/Module1/Controllers/ActivitiesController.cs。这是全班
namespace MyProject.Areas.Module1.Controllers
{
public partial class ActivitiesController : MyProject.Controllers.ActivitiesController
{
public ActivitiesController() : base()
{
base.currentModule = Modules.Module1;
}
}
}
没有找到相关结果
已邀请:
2 个回复
需复
宦哨抹存胳
将错误更正为后,错误消失了:
错误消息不是很直观,重新运行自定义工具的建议并没有真正帮助。