ASP.NET vNext Overview表示您可以通过注入IActionResultHelper
来创建POCO控制器:
public class HomeController
{
// Helpers can be dependency injected into the controller
public HomeController(IActionResultHelper resultHelper)
{
Result = resultHelper;
}
private IActionResultHelper Result { get; set; }
public ActionResult Index()
{
return Result.Json(new { message = "Poco controllers!" });
}
}
我试图实现这一点,但是,我找不到这个界面。它似乎是no longer中的the source code。
目前创建POCO控制器的正确方法是什么?
答案 0 :(得分:1)
是的,这个代码大约在一个月前删除了,看起来他们正在采用不同的基于属性的方法来创建POCO控制器。没有IActionResultHelper,您只需创建新的ActionResult实例......
如果你仔细研究这些问题,就能感受到正在发生的事情。
https://github.com/aspnet/Mvc/issues/316 https://github.com/aspnet/Mvc/issues/597 https://github.com/aspnet/Mvc/issues/617
POCO控制器中似乎使用了新的[Activate]属性。请参阅此示例。
https://github.com/aspnet/Mvc/blob/dev/samples/MvcSample.Web/Home2Controller.cs
还有这个样本
https://github.com/aspnet/Mvc/blob/dev/samples/MvcSample.Web/SimplePocoController.cs
显然,新的DefaultControllerFactory要求POCO仍然在控制器的命名中使用Controller后缀,但如果控制器派生自Controller类,则可以命名控制器。
答案 1 :(得分:1)
截至2014-10-06的Visual Studio 14的CTP版本,注入服务的方式是:
public class HomeController
{
// Use the ActivateAttribute to inject services into your controller
[Activate]
public ViewDataDictionary ViewData { get; set; }
public ActionResult Index()
{
return new ViewResult() { ViewData = ViewData };
}
}
来源:Getting Started with ASP.NET MVC 6 - Mike Wasson, asp.net