[英]Visual Studio 2015: MVC 6 Scaffolding switched to using IActionResult intead of ActionResult
我刚刚安装了VS 2015,我注意到MVC6的自动脚手架有一些变化。 我很好奇为什么微软会做出这些改变,因为我认为如果他们决定做一些改变,可能会有一些我可能不知道的好处。
在VS 2013中,MVC 5 Auto-Scaffolding始终使用:ActionResult
在VS 2015中,MVC 6 Auto-Scaffolding切换到使用:IActionResult
在VS 2015中,我注意到Microsoft团队不再这样做了:
public class Test{
private int i;
public Test (int i){
this.i = i;
}
}
在所有生成的类中,我看到他们做了:
public class Test{
private int _i;
public Test (int i){
_i = i;
}
}
如果它只是编码风格的问题,那很好,我会立即失去我的兴趣知道为什么他们改变了这一点,但如果有任何合理的解释背后,我迫不及待想知道那是什么。
就ActionResult问题而言,在以前的ASP.NET中,MVC控制器使用System.Web.MVC.Controller Parent类和Web API控制器使用System.Web.Http.ApiController Parent类。
但是在ASP.NET 5 MVC 6中,它们已经在一个Web应用程序中合并。 所以现在只有一个控制器类Microsoft.AspNet.Mvc.Controller类作为它们的基础。 现在要区分它们,当用作MVC控制器时,IActionResult可能是一个视图。 当用作Web API控制器时,IActionResult可能是数据(JSON / XML)。 同一个控制器可能具有返回视图和数据的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.