1

T4MVC 在除区域外的所有地方都运行良好。

在区域中,它获取控制器和操作,但不获取视图。

所以,我不能在我的控制器中写:

return View(MVC.MyArea.MyController.Views.MyView);

在区域之外,我可以写:

return View(Views.MyOtherView);

我还可以参考我的区域控制器中的操作:

MVC.MyArea.MyController.MyAction()

换句话说:

一个。我可以得到任何我想要的东西,如果它不在一个区域内。

湾。我可以在我的区域控制器中获取操作。

C。但我无法在我的地区获得我的意见。

问题可能是什么?

TIA

编辑:

问题是让 T4MVC 重新运行(请参阅 David Ebbo 的回答和我的“回答”)。

4

2 回答 2

1

What you have should work, and I verified it by:

  • Creating a new MVC3 app and adding the latest T4MVC 2.6.40 (via nuget)
  • Adding an Area named MyArea
  • Adding a controller named MyController
  • Adding a view named MyView
  • Make sure you rerun the T4MVC.tt custom tool

After that, I'm able to write:

namespace Mvc3Application.Areas.MyArea.Controllers {
    public partial class MyController : Controller {
        public virtual ActionResult Index() {
            return View(Views.MyView);
        }
    }
}

or

namespace Mvc3Application.Areas.MyArea.Controllers {
    public partial class MyController : Controller {
        public virtual ActionResult Index() {
            return View(MVC.MyArea.My.Views.MyView);
        }
    }
}

Note that in the second case, the token in 'My' instead of 'MyController', which is the way it always works.

Please try following those steps in a clean app to see if it works.

于 2011-01-17T07:28:04.340 回答
1

我相信我的问题是由 T4MVC 没有重新运行引起的。结果(我推测)T4MVC 不会更新以反映项目中的更改。例如,在 Controller 中更改 Action 的参数。或者(特定于这个问题)添加一个新视图。

关于让自己重新运行的 T4MVC 文档含糊不清,但指出了一个名为 Chirpy 的 VS 插件。

Chirpy 安装,然后你必须去配置它。您可以通过打开 Visual Studio,然后转到工具 >> 选项并选择 Chirpy 选项来执行此操作。

看图片:

替代文字

我必须添加模板名称 T4MVC.tt 位才能使其工作。不确定这是否必要或为什么。但现在一切正常。

如果有更好的方法可以做到这一点,请告诉我。

于 2011-01-17T14:24:42.240 回答