C# MVC6中的POCO控制器
说明您可以通过注入C# MVC6中的POCO控制器,c#,asp.net,asp.net-mvc,poco,asp.net-core-mvc,C#,Asp.net,Asp.net Mvc,Poco,Asp.net Core Mvc,说明您可以通过注入iactionresultper来创建POCO控制器: public class HomeController { // Helpers can be dependency injected into the controller public HomeController(IActionResultHelper resultHelper) { Result = resultHelper; } private IActi
iactionresultper
来创建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!" });
}
}
我正在尝试实现这个,但是,我找不到这个接口。这似乎是在
当前创建POCO控制器的正确方法是什么?是的,这段代码大约在一个月前被删除,看起来他们正在使用一种不同的基于属性的方法来创建POCO控制器。没有iActionResultPer,您只需创建新的ActionResult实例 如果你仔细研究这些问题,你就会对正在发生的事情有一种感觉 POCO控制器中似乎使用了一个新的[Activate]属性。看看这个例子 还有这个样品
显然,新的DefaultControllerFactory要求POCO在控制器的命名中仍然使用控制器后缀,但如果控制器派生自控制器类,则可以对其进行任何命名。自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 };
}
}
来源:这个来自asp.net论坛的答案澄清了@WiktorZychla的情况-是的,这并没有澄清太多。。只是iActionResultPer不见了,你像往常一样创造了结果。@ErikFunkenbusch:这澄清了一切。源代码注释说,
属性ActionContext由来自DefaultControllerFactory的InitializeControl注入。
。该示例显示,ActionContext
允许您访问HttpContext
以及通常通过继承获得的其他基础架构内容。