是否存在任何将POCO概念应用于控制器的MVC框架?
例:
假设我不想让我的控制器依赖于任何Web框架,就像我不再需要从框架Controller类继承一样。
相反,我想只指定带有一些规则的路由,描述如何将请求映射到我的POCO控制器类实例的方法和参数。
下面的小例子可以更好地解释它 想象一下,我们可以像这样进行路由:
routes.MapPOCOController<MyPOCO>("MyWebAppName/{method}/{*parameters}", () => _container.Resolve<MyPOCO>());
routes.IfMethodReturns<MyCustomRedirectResult>().PerformRedirect(result => result.Url);
然后你的控制器类只是一个POCO对象:
public class MyPOCO {
public User GetUser(Guid userId) {...}
public string Home() {
return _razorEngine.Render("~/Views/Home/Index.cshtml", new HomeModel { Message = "Hello world!"});
}
public object RenderSomePageOrRedirect()
{
if(blabla)
return new MyCustomRedirectResult("/profile");
else
return _razorEngine.Render( ... );
}
...
}
是否有任何框架已经实现了至少一个上述概念? ......可能是一些“contrib”库?
我正在寻找这样的功能的原因是:
PS:感谢下面评论过的人们(特别是StriplingWarrior)并帮助我正确地形成了这个问题!
答案 0 :(得分:2)
AFAIK那里没有这样的框架。 ASP.NET MVC控制器必须派生自Controller
,AsyncController
或ApiController
类。所以我想如果你想实现这样的概念,你将不得不编写自己的MVC框架。
答案 1 :(得分:1)
实际上有FubuMvc。它似乎是你正在寻找的。唯一的问题是稀缺的文件。